Skip site navigation (1)Skip section navigation (2)
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>