From ee695c0b4b51fdb522a1706339d3476b2cbe0982 Mon Sep 17 00:00:00 2001 From: kevlo Date: Fri, 31 Jul 2009 09:57:42 +0000 Subject: Free allocated Rx ring dma memory/tags. Reviewed by: yongari@ Approved by: re (kib) --- sys/dev/alc/if_alc.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'sys/dev/alc') 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) -- cgit v1.1