Process tx callbacks when draining the tx q; this fixes a problem

where a device timeout that occurs with a mgt frame on the tx q
will leave the net80211 layer w/o any way to make progress.

Reviewed by:	thompsa, sephe
Approved by:	re (hrs)
This commit is contained in:
sam 2007-06-24 01:57:20 +00:00
parent 4f43004836
commit 99d11a5591

View File

@ -4798,8 +4798,10 @@ ath_tx_draintxq(struct ath_softc *sc, struct ath_txq *txq)
bf->bf_node = NULL;
if (ni != NULL) {
/*
* Reclaim node reference.
* Do any callback and reclaim the node reference.
*/
if (bf->bf_m->m_flags & M_TXCB)
ieee80211_process_callback(ni, bf->bf_m, -1);
ieee80211_free_node(ni);
}
m_freem(bf->bf_m);