summaryrefslogtreecommitdiffstats
path: root/sys/dev/sym
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2014-06-10 20:25:45 +0000
committerjhb <jhb@FreeBSD.org>2014-06-10 20:25:45 +0000
commit02e632b71287ac53801c62c26a1c00926fca8e2d (patch)
treefce070802b2d12919f979d51576d5aad6077a6c2 /sys/dev/sym
parente250a91c1da4cfd9eb0dab8e0aac2bc6fc7a8176 (diff)
downloadFreeBSD-src-02e632b71287ac53801c62c26a1c00926fca8e2d.zip
FreeBSD-src-02e632b71287ac53801c62c26a1c00926fca8e2d.tar.gz
Don't destroy bus_dma maps created by bus_dmamem_alloc(). In some cases,
don't create a map before calling bus_dmamem_alloc() (such maps were leaked). It is believed that the extra destroy of the map was generally harmless since bus_dmamem_alloc() often uses special maps for which bus_dmamap_destroy() is a no-op (e.g. on x86). Reviewed by: scottl
Diffstat (limited to 'sys/dev/sym')
-rw-r--r--sys/dev/sym/sym_hipd.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/sys/dev/sym/sym_hipd.c b/sys/dev/sym/sym_hipd.c
index 75e770f..4dc5ca5 100644
--- a/sys/dev/sym/sym_hipd.c
+++ b/sys/dev/sym/sym_hipd.c
@@ -617,11 +617,8 @@ out_err:
bus_dmamap_unload(mp->dmat, vbp->dmamap);
if (vaddr)
bus_dmamem_free(mp->dmat, vaddr, vbp->dmamap);
- if (vbp) {
- if (vbp->dmamap)
- bus_dmamap_destroy(mp->dmat, vbp->dmamap);
+ if (vbp)
__sym_mfree(&mp0, vbp, sizeof(*vbp), "VTOB");
- }
return 0;
}
@@ -639,7 +636,6 @@ static void ___dma_freep(m_pool_s *mp, m_addr_t m)
*vbpp = (*vbpp)->next;
bus_dmamap_unload(mp->dmat, vbp->dmamap);
bus_dmamem_free(mp->dmat, (void *) vbp->vaddr, vbp->dmamap);
- bus_dmamap_destroy(mp->dmat, vbp->dmamap);
__sym_mfree(&mp0, vbp, sizeof(*vbp), "VTOB");
--mp->nump;
}
OpenPOWER on IntegriCloud