summaryrefslogtreecommitdiffstats
path: root/sys/dev/isp/isp_pci.c
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2014-06-13 18:20:44 +0000
committerjhb <jhb@FreeBSD.org>2014-06-13 18:20:44 +0000
commit4b2862afcf79ea4b962966fb574c207179b02a32 (patch)
tree0a0f66cb6a86ef083ff47fdb6de973aaea4d9049 /sys/dev/isp/isp_pci.c
parent538796da605ba2e36b056ca95d2a35bfed1bf89a (diff)
downloadFreeBSD-src-4b2862afcf79ea4b962966fb574c207179b02a32.zip
FreeBSD-src-4b2862afcf79ea4b962966fb574c207179b02a32.tar.gz
Add missing calls to bus_dmamap_unload() when freeing static DMA
allocations. Reviewed by: scottl
Diffstat (limited to 'sys/dev/isp/isp_pci.c')
-rw-r--r--sys/dev/isp/isp_pci.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/dev/isp/isp_pci.c b/sys/dev/isp/isp_pci.c
index 86c5a1d..2c6ee89 100644
--- a/sys/dev/isp/isp_pci.c
+++ b/sys/dev/isp/isp_pci.c
@@ -1741,6 +1741,7 @@ isp_pci_mbxdma(ispsoftc_t *isp)
bad:
while (--cmap >= 0) {
struct isp_fc *fc = ISP_FC_PC(isp, cmap);
+ bus_dmamap_unload(fc->tdmat, fc->tdmap);
bus_dmamem_free(fc->tdmat, base, fc->tdmap);
bus_dma_tag_destroy(fc->tdmat);
while (fc->nexus_free_list) {
@@ -1749,6 +1750,8 @@ bad:
free(n, M_DEVBUF);
}
}
+ if (isp->isp_rquest_dma != 0)
+ bus_dmamap_unload(isp->isp_osinfo.cdmat, isp->isp_osinfo.cdmap);
bus_dmamem_free(isp->isp_osinfo.cdmat, base, isp->isp_osinfo.cdmap);
bus_dma_tag_destroy(isp->isp_osinfo.cdmat);
free(isp->isp_xflist, M_DEVBUF);
OpenPOWER on IntegriCloud