|
@@ -179,6 +179,11 @@ static void ath_tx_flush_tid(struct ath_softc *sc, struct ath_atx_tid *tid)
|
|
|
spin_lock_bh(&txq->axq_lock);
|
|
|
}
|
|
|
|
|
|
+ if (tid->baw_head == tid->baw_tail) {
|
|
|
+ tid->state &= ~AGGR_ADDBA_COMPLETE;
|
|
|
+ tid->state &= ~AGGR_CLEANUP;
|
|
|
+ }
|
|
|
+
|
|
|
spin_unlock_bh(&txq->axq_lock);
|
|
|
}
|
|
|
|
|
@@ -556,15 +561,9 @@ static void ath_tx_complete_aggr(struct ath_softc *sc, struct ath_txq *txq,
|
|
|
spin_unlock_bh(&txq->axq_lock);
|
|
|
}
|
|
|
|
|
|
- if (tid->state & AGGR_CLEANUP) {
|
|
|
+ if (tid->state & AGGR_CLEANUP)
|
|
|
ath_tx_flush_tid(sc, tid);
|
|
|
|
|
|
- if (tid->baw_head == tid->baw_tail) {
|
|
|
- tid->state &= ~AGGR_ADDBA_COMPLETE;
|
|
|
- tid->state &= ~AGGR_CLEANUP;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
rcu_read_unlock();
|
|
|
|
|
|
if (needreset) {
|