aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/ath/ath9k/xmit.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c
index 21aa5bdb259..501b72821b4 100644
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -518,6 +518,14 @@ static void ath_tx_complete_aggr(struct ath_softc *sc, struct ath_txq *txq,
518 bf = bf_next; 518 bf = bf_next;
519 } 519 }
520 520
521 /* prepend un-acked frames to the beginning of the pending frame queue */
522 if (!list_empty(&bf_pending)) {
523 spin_lock_bh(&txq->axq_lock);
524 list_splice(&bf_pending, &tid->buf_q);
525 ath_tx_queue_tid(txq, tid);
526 spin_unlock_bh(&txq->axq_lock);
527 }
528
521 if (tid->state & AGGR_CLEANUP) { 529 if (tid->state & AGGR_CLEANUP) {
522 if (tid->baw_head == tid->baw_tail) { 530 if (tid->baw_head == tid->baw_tail) {
523 tid->state &= ~AGGR_ADDBA_COMPLETE; 531 tid->state &= ~AGGR_ADDBA_COMPLETE;
@@ -530,14 +538,6 @@ static void ath_tx_complete_aggr(struct ath_softc *sc, struct ath_txq *txq,
530 return; 538 return;
531 } 539 }
532 540
533 /* prepend un-acked frames to the beginning of the pending frame queue */
534 if (!list_empty(&bf_pending)) {
535 spin_lock_bh(&txq->axq_lock);
536 list_splice(&bf_pending, &tid->buf_q);
537 ath_tx_queue_tid(txq, tid);
538 spin_unlock_bh(&txq->axq_lock);
539 }
540
541 rcu_read_unlock(); 541 rcu_read_unlock();
542 542
543 if (needreset) 543 if (needreset)