DragonFly BSD
DragonFly bugs List (threaded) for 2005-04
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: Compaq Smart Array 5i panic w/ Dragonfly 1.2


From: Joerg Sonnenberger <joerg@xxxxxxxxxxxxxxxxx>
Date: Sat, 23 Apr 2005 23:13:21 +0200
Mail-followup-to: bugs@crater.dragonflybsd.org

On Sat, Apr 23, 2005 at 04:02:56PM -0500, Bill Marquette wrote:
> On 4/23/05, Joerg Sonnenberger <joerg@xxxxxxxxxxxxxxxxx> wrote:
> > Please try the attached patch.
> 
> Joerg, I'm not sure if we're getting closer, but it panics in a
> different place now.

Sorry, I should sleep more. Try again :)

Joerg
Index: ciss.c
===================================================================
RCS file: /home/joerg/wd/repository/dragonflybsd/src/sys/dev/raid/ciss/ciss.c,v
retrieving revision 1.12
diff -u -r1.12 ciss.c
--- ciss.c	1 Feb 2005 02:16:58 -0000	1.12
+++ ciss.c	23 Apr 2005 21:12:39 -0000
@@ -760,6 +760,7 @@
 	ciss_printf(sc, "can't allocate command memory\n");
 	return(ENOMEM);
     }
+    bus_dmamap_create(sc->ciss_command_dmat, 0, &sc->ciss_command_map);
     bus_dmamap_load(sc->ciss_command_dmat, sc->ciss_command_map, sc->ciss_command, 
 		    sizeof(struct ciss_command) * sc->ciss_max_requests,
 		    ciss_command_map_helper, sc, 0);
@@ -1378,6 +1379,7 @@
     if (sc->ciss_command != NULL) {
 	bus_dmamap_unload(sc->ciss_command_dmat, sc->ciss_command_map);
 	bus_dmamem_free(sc->ciss_command_dmat, sc->ciss_command, sc->ciss_command_map);
+	bus_dmamap_destroy(sc->ciss_command_dmat, sc->ciss_command_map);
     }
     if (sc->ciss_buffer_dmat)
 	bus_dma_tag_destroy(sc->ciss_command_dmat);
@@ -1992,6 +1994,7 @@
     if ((cr->cr_flags & CISS_REQ_MAPPED) || (cr->cr_data == NULL))
 	return(0);
     
+    bus_dmamap_create(sc->ciss_buffer_dmat, 0, &cr->cr_datamap);
     bus_dmamap_load(sc->ciss_buffer_dmat, cr->cr_datamap, cr->cr_data, cr->cr_length,
 		    ciss_request_map_helper, CISS_FIND_COMMAND(cr), 0);
 	
@@ -2045,6 +2048,7 @@
 	bus_dmamap_sync(sc->ciss_buffer_dmat, cr->cr_datamap, BUS_DMASYNC_POSTWRITE);
 
     bus_dmamap_unload(sc->ciss_buffer_dmat, cr->cr_datamap);
+    bus_dmamap_destroy(sc->ciss_buffer_dmat, cr->cr_datamap);
     cr->cr_flags &= ~CISS_REQ_MAPPED;
 }
 


[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]