Date: Thu, 01 Nov 2012 10:54:26 -0700 From: Matthew Jacob <mjacob@freebsd.org> To: Matt Jacob <mjacob@freebsd.org> Cc: freebsd-scsi@freebsd.org Subject: Re: isp(4) broken in RELENG_9 Message-ID: <5092B752.5020807@freebsd.org> In-Reply-To: <509281A6.1050302@feral.com> References: <alpine.BSF.2.00.1210311616350.1938@unqrf.nqzva.sez2> <50915CC0.1090207@feral.com> <alpine.BSF.2.00.1211011055250.41308@unqrf.nqzva.sez2> <509281A6.1050302@feral.com>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------020308020206040101080802 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 11/01/12 07:05, Matthew Jacob wrote: > So, it's working in 9.1 but not in 9? > > Since any fix to 9.0 would be in 9.1 are we just concerned with > understanding what happened, or is there a specific reason we need to > know what changed so that a specific fix to 9.0 is needed? > > I'm sure that there is a bug in isp where it can ask for more than a > page's worth of queue space mapping but can't deal with things if you > get more than 1 segment descriptor back. I need to fix that, but I > won't be able to get to that for a couple of weeks. > > It's possible that the FC-TAPE changes triggered this because that > threw more of a load on the control space. I'll try and calculate a > change to MAXISPREQUEST to re-fit within a page some time today. > > -matt > Try the attached patch and see if it works for you. I'm not really satisfied with it- I need to do a slightly more finessed solution, but it might work for you for the moment. --------------020308020206040101080802 Content-Type: text/plain; name="isp_pci.c.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="isp_pci.c.patch" Index: isp_pci.c =================================================================== --- isp_pci.c (revision 242431) +++ isp_pci.c (working copy) @@ -1639,7 +1638,7 @@ * Create a tag for the control spaces. We don't always need this * to be 32 bits, but we do this for simplicity and speed's sake. */ - if (isp_dma_tag_create(isp->isp_osinfo.dmat, QENTRY_LEN, slim, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, len, ns, slim, 0, &isp->isp_osinfo.cdmat)) { + if (isp_dma_tag_create(isp->isp_osinfo.dmat, QENTRY_LEN, slim, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, len, 1, slim, 0, &isp->isp_osinfo.cdmat)) { isp_prt(isp, ISP_LOGERR, "cannot create a dma tag for control spaces"); free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); free(isp->isp_xflist, M_DEVBUF); --------------020308020206040101080802--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5092B752.5020807>