Author: kevlo
Date: Fri Jul 31 09:57:42 2009
New Revision: 195989
URL: http://svn.freebsd.org/changeset/base/195989

Log:
  Free allocated Rx ring dma memory/tags.
  
  Reviewed by: yongari@
  Approved by: re (kib)

Modified:
  head/sys/dev/alc/if_alc.c

Modified: head/sys/dev/alc/if_alc.c
==============================================================================
--- head/sys/dev/alc/if_alc.c   Fri Jul 31 08:37:27 2009        (r195988)
+++ head/sys/dev/alc/if_alc.c   Fri Jul 31 09:57:42 2009        (r195989)
@@ -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)
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to