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.
This commit is contained in:
Adrian Chadd 2013-04-01 20:11:19 +00:00
parent 9f4c7ba460
commit 80b87f1814

View file

@ -680,10 +680,12 @@ ath_edma_rxbuf_free(struct ath_softc *sc, struct ath_buf *bf)
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;
}