Index: if_ath.c =================================================================== --- if_ath.c (revision 247695) +++ if_ath.c (working copy) @@ -4374,6 +4374,24 @@ return 1; } +static void +ath_tx_dump_descs(struct ath_softc *sc, struct ath_txq *txq) +{ + struct ath_buf *bf; + int i = 0; + + ATH_TX_LOCK(sc); + device_printf(sc->sc_dev, "%s: txq %d\n", __func__, txq->axq_qnum); + bf = TAILQ_FIRST(&txq->axq_q); + while (bf != NULL) { + ath_printtxbuf(sc, bf, txq->axq_qnum, i, 0); + bf = TAILQ_NEXT(bf, bf_list); + i++; + } + device_printf(sc->sc_dev, "%s: txq %d: done\n", __func__, txq->axq_qnum); + ATH_TX_UNLOCK(sc); +} + /* * Drain the transmit queues and reclaim resources. */ @@ -4394,6 +4412,8 @@ * here, whether or not the reset is a full one or not? */ if (ATH_TXQ_SETUP(sc, i)) { + if (sc->sc_debug & ATH_DEBUG_RESET) + ath_tx_dump_descs(sc, &sc->sc_txq[i]); if (reset_type == ATH_RESET_NOLOSS) ath_tx_processq(sc, &sc->sc_txq[i], 0); else