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