svn commit: r240023 - stable/9/sys/dev/isp

Matt Jacob mjacob at FreeBSD.org
Sun Sep 2 15:23:02 UTC 2012


Author: mjacob
Date: Sun Sep  2 15:23:01 2012
New Revision: 240023
URL: http://svn.freebsd.org/changeset/base/240023

Log:
  MFC of 239010
  
  Oops. We only do allocate room for extended commands
  and responses for 2300 cards are newer.

Modified:
  stable/9/sys/dev/isp/isp_pci.c
Directory Properties:
  stable/9/sys/   (props changed)
  stable/9/sys/dev/   (props changed)
  stable/9/sys/dev/isp/   (props changed)

Modified: stable/9/sys/dev/isp/isp_pci.c
==============================================================================
--- stable/9/sys/dev/isp/isp_pci.c	Sun Sep  2 15:21:55 2012	(r240022)
+++ stable/9/sys/dev/isp/isp_pci.c	Sun Sep  2 15:23:01 2012	(r240023)
@@ -1482,16 +1482,18 @@ imc(void *arg, bus_dma_segment_t *segs, 
 	segs->ds_addr += ISP_QUEUE_SIZE(RESULT_QUEUE_LEN(imushp->isp));
 	imushp->vbase += ISP_QUEUE_SIZE(RESULT_QUEUE_LEN(imushp->isp));
 
-	imushp->isp->isp_osinfo.ecmd_dma = segs->ds_addr;
-	imushp->isp->isp_osinfo.ecmd_free = (isp_ecmd_t *)imushp->vbase;
-	imushp->isp->isp_osinfo.ecmd_base = imushp->isp->isp_osinfo.ecmd_free;
-	for (ecmd = imushp->isp->isp_osinfo.ecmd_free; ecmd < &imushp->isp->isp_osinfo.ecmd_free[N_XCMDS]; ecmd++) {
-		if (ecmd == &imushp->isp->isp_osinfo.ecmd_free[N_XCMDS - 1]) {
-			ecmd->next = NULL;
-		} else {
-			ecmd->next = ecmd + 1;
-		}
-	}
+	if (imushp->isp->isp_type >= ISP_HA_FC_2300) {
+        imushp->isp->isp_osinfo.ecmd_dma = segs->ds_addr;
+        imushp->isp->isp_osinfo.ecmd_free = (isp_ecmd_t *)imushp->vbase;
+        imushp->isp->isp_osinfo.ecmd_base = imushp->isp->isp_osinfo.ecmd_free;
+        for (ecmd = imushp->isp->isp_osinfo.ecmd_free; ecmd < &imushp->isp->isp_osinfo.ecmd_free[N_XCMDS]; ecmd++) {
+            if (ecmd == &imushp->isp->isp_osinfo.ecmd_free[N_XCMDS - 1]) {
+                ecmd->next = NULL;
+            } else {
+                ecmd->next = ecmd + 1;
+            }
+        }
+    }
 #ifdef	ISP_TARGET_MODE
 	segs->ds_addr += (N_XCMDS * XCMD_SIZE);
 	imushp->vbase += (N_XCMDS * XCMD_SIZE);


More information about the svn-src-stable-9 mailing list