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
[-- Attachment #1 --]
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.
[-- Attachment #2 --]
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);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5092B752.5020807>
