Date: Sat, 16 Apr 2011 10:35:02 +0000 (UTC) From: Bernhard Schmidt <bschmidt@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r220701 - head/sys/dev/iwn Message-ID: <201104161035.p3GAZ2hv001780@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: bschmidt Date: Sat Apr 16 10:35:02 2011 New Revision: 220701 URL: http://svn.freebsd.org/changeset/base/220701 Log: Make sure to destroy all DMA tags and maps. Modified: head/sys/dev/iwn/if_iwn.c Modified: head/sys/dev/iwn/if_iwn.c ============================================================================== --- head/sys/dev/iwn/if_iwn.c Sat Apr 16 10:32:46 2011 (r220700) +++ head/sys/dev/iwn/if_iwn.c Sat Apr 16 10:35:02 2011 (r220701) @@ -1159,16 +1159,20 @@ fail: static void iwn_dma_contig_free(struct iwn_dma_info *dma) { - if (dma->tag != NULL) { - if (dma->map != NULL) { - if (dma->paddr == 0) { - bus_dmamap_sync(dma->tag, dma->map, - BUS_DMASYNC_POSTREAD|BUS_DMASYNC_POSTWRITE); - bus_dmamap_unload(dma->tag, dma->map); - } + if (dma->map != NULL) { + if (dma->vaddr != NULL) { + bus_dmamap_sync(dma->tag, dma->map, + BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); + bus_dmamap_unload(dma->tag, dma->map); bus_dmamem_free(dma->tag, &dma->vaddr, dma->map); + dma->vaddr = NULL; } + bus_dmamap_destroy(dma->tag, dma->map); + dma->map = NULL; + } + if (dma->tag != NULL) { bus_dma_tag_destroy(dma->tag); + dma->tag = NULL; } } @@ -1360,6 +1364,10 @@ iwn_free_rx_ring(struct iwn_softc *sc, s if (data->map != NULL) bus_dmamap_destroy(ring->data_dmat, data->map); } + if (ring->data_dmat != NULL) { + bus_dma_tag_destroy(ring->data_dmat); + ring->data_dmat = NULL; + } } static int @@ -1479,6 +1487,10 @@ iwn_free_tx_ring(struct iwn_softc *sc, s if (data->map != NULL) bus_dmamap_destroy(ring->data_dmat, data->map); } + if (ring->data_dmat != NULL) { + bus_dma_tag_destroy(ring->data_dmat); + ring->data_dmat = NULL; + } } static void
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201104161035.p3GAZ2hv001780>