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