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;
        }
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to