summaryrefslogtreecommitdiffstats
path: root/sys/dev/ciss
diff options
context:
space:
mode:
authorps <ps@FreeBSD.org>2003-05-21 07:17:06 +0000
committerps <ps@FreeBSD.org>2003-05-21 07:17:06 +0000
commitab966f1217f865494769987074763f2f25194cbd (patch)
treec2051d2505e631ac9a4ff705b76515d5d46e8a34 /sys/dev/ciss
parent5fd3439030816602010a8e2cb7604491e6d78370 (diff)
downloadFreeBSD-src-ab966f1217f865494769987074763f2f25194cbd.zip
FreeBSD-src-ab966f1217f865494769987074763f2f25194cbd.tar.gz
Make ciss usable under PAE
Approved by: re (scottl)
Diffstat (limited to 'sys/dev/ciss')
-rw-r--r--sys/dev/ciss/ciss.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/dev/ciss/ciss.c b/sys/dev/ciss/ciss.c
index 6763a5b..6009b44 100644
--- a/sys/dev/ciss/ciss.c
+++ b/sys/dev/ciss/ciss.c
@@ -770,6 +770,7 @@ ciss_init_requests(struct ciss_softc *sc)
cr = &sc->ciss_request[i];
cr->cr_sc = sc;
cr->cr_tag = i;
+ bus_dmamap_create(sc->ciss_buffer_dmat, 0, &cr->cr_datamap);
ciss_enqueue_free(cr);
}
return(0);
@@ -1341,6 +1342,8 @@ ciss_accept_media_complete(struct ciss_request *cr)
static void
ciss_free(struct ciss_softc *sc)
{
+ struct ciss_request *cr;
+
debug_called(1);
/* we're going away */
@@ -1372,6 +1375,9 @@ ciss_free(struct ciss_softc *sc)
/* destroy DMA tags */
if (sc->ciss_parent_dmat)
bus_dma_tag_destroy(sc->ciss_parent_dmat);
+
+ while ((cr = ciss_dequeue_free(sc)) != NULL)
+ bus_dmamap_destroy(sc->ciss_buffer_dmat, cr->cr_datamap);
if (sc->ciss_buffer_dmat)
bus_dma_tag_destroy(sc->ciss_buffer_dmat);
@@ -1380,7 +1386,7 @@ ciss_free(struct ciss_softc *sc)
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);
}
- if (sc->ciss_buffer_dmat)
+ if (sc->ciss_command_dmat)
bus_dma_tag_destroy(sc->ciss_command_dmat);
/* disconnect from CAM */
OpenPOWER on IntegriCloud