svn commit: r248984 - head/sys/dev/ath
Adrian Chadd
adrian at FreeBSD.org
Mon Apr 1 20:11:20 UTC 2013
Author: adrian
Date: Mon Apr 1 20:11:19 2013
New Revision: 248984
URL: http://svnweb.freebsd.org/changeset/base/248984
Log:
Only unmap the RX mbuf DMA map if there's a buffer here.
The normal RX path (ath_rx_pkt()) will sync and unmap the
buffer before passing it up the stack. We only need to do this
if we're flushing the FIFO during reset/shutdown.
Modified:
head/sys/dev/ath/if_ath_rx_edma.c
Modified: head/sys/dev/ath/if_ath_rx_edma.c
==============================================================================
--- head/sys/dev/ath/if_ath_rx_edma.c Mon Apr 1 19:13:46 2013 (r248983)
+++ head/sys/dev/ath/if_ath_rx_edma.c Mon Apr 1 20:11:19 2013 (r248984)
@@ -680,10 +680,12 @@ ath_edma_rxbuf_free(struct ath_softc *sc
ATH_RX_LOCK_ASSERT(sc);
- /* We're doing this multiple times? */
- bus_dmamap_unload(sc->sc_dmat, bf->bf_dmamap);
-
+ /*
+ * Only unload the frame if we haven't consumed
+ * the mbuf via ath_rx_pkt().
+ */
if (bf->bf_m) {
+ bus_dmamap_unload(sc->sc_dmat, bf->bf_dmamap);
m_freem(bf->bf_m);
bf->bf_m = NULL;
}
More information about the svn-src-all
mailing list