summaryrefslogtreecommitdiffstats
path: root/sys/dev/alc
diff options
context:
space:
mode:
authorkevlo <kevlo@FreeBSD.org>2009-07-31 09:57:42 +0000
committerkevlo <kevlo@FreeBSD.org>2009-07-31 09:57:42 +0000
commitee695c0b4b51fdb522a1706339d3476b2cbe0982 (patch)
tree91ab827c6227ca5f0df9eafc2d547b3272ea9c3c /sys/dev/alc
parent1eac2402ef00de3a96ce1d9d21792a8d8bff046d (diff)
downloadFreeBSD-src-ee695c0b4b51fdb522a1706339d3476b2cbe0982.zip
FreeBSD-src-ee695c0b4b51fdb522a1706339d3476b2cbe0982.tar.gz
Free allocated Rx ring dma memory/tags.
Reviewed by: yongari@ Approved by: re (kib)
Diffstat (limited to 'sys/dev/alc')
-rw-r--r--sys/dev/alc/if_alc.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/sys/dev/alc/if_alc.c b/sys/dev/alc/if_alc.c
index b28a411..f3483b7 100644
--- a/sys/dev/alc/if_alc.c
+++ b/sys/dev/alc/if_alc.c
@@ -1501,6 +1501,21 @@ alc_dma_free(struct alc_softc *sc)
bus_dma_tag_destroy(sc->alc_cdata.alc_tx_ring_tag);
sc->alc_cdata.alc_tx_ring_tag = NULL;
}
+ /* Rx ring. */
+ if (sc->alc_cdata.alc_rx_ring_tag != NULL) {
+ if (sc->alc_cdata.alc_rx_ring_map != NULL)
+ bus_dmamap_unload(sc->alc_cdata.alc_rx_ring_tag,
+ sc->alc_cdata.alc_rx_ring_map);
+ if (sc->alc_cdata.alc_rx_ring_map != NULL &&
+ sc->alc_rdata.alc_rx_ring != NULL)
+ bus_dmamem_free(sc->alc_cdata.alc_rx_ring_tag,
+ sc->alc_rdata.alc_rx_ring,
+ sc->alc_cdata.alc_rx_ring_map);
+ sc->alc_rdata.alc_rx_ring = NULL;
+ sc->alc_cdata.alc_rx_ring_map = NULL;
+ bus_dma_tag_destroy(sc->alc_cdata.alc_rx_ring_tag);
+ sc->alc_cdata.alc_rx_ring_tag = NULL;
+ }
/* Rx return ring. */
if (sc->alc_cdata.alc_rr_ring_tag != NULL) {
if (sc->alc_cdata.alc_rr_ring_map != NULL)
OpenPOWER on IntegriCloud