busdma/scsi trm(4) related panic

Scott Long scottl at freebsd.org
Fri Aug 8 23:46:35 PDT 2003


Jon Kuster wrote:
> On Wed, 2003-08-06 at 06:42, Scott Long wrote:
> 
>>I know what the problem is and I'm working on a patch right now.
>>
>>Scott
> 
> 
> Excellent.  I'll be happy to test it if needed.
> 
> Jon
> 
> 

Attached is an untested patch.  Please let me know if it solves the
problem

Scott
-------------- next part --------------
Index: trm.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/trm/trm.c,v
retrieving revision 1.12
diff -u -r1.12 trm.c
--- trm.c	1 Jul 2003 15:52:02 -0000	1.12
+++ trm.c	9 Aug 2003 06:45:05 -0000
@@ -2999,6 +2999,7 @@
 {
     	u_int16_t    i;
 	PSRB    pSRB;
+	int error;
 
 	for (i = 0; i < TRM_MAX_SRB_CNT; i++) {
 	       	pSRB = (PSRB)&pACB->pFreeSRB[i];
@@ -3040,6 +3041,17 @@
 			pSRB->pNextSRB = NULL;
 		}
 		pSRB->TagNumber = i;
+
+		/*
+		 * Create the dmamap.  This is no longer optional!
+		 *
+		 * XXX This is not freed on unload!  None of the other
+		 * allocations in this function are either!
+		 */
+		if ((error = bus_dmamap_create(pACB->buffer_dmat, 0,
+					       &pSRB->dmamap)) != 0)
+			return (error);
+
 	}
 	return (0);
 }


More information about the freebsd-current mailing list