aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/xmit.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/xmit.c')
-rw-r--r--drivers/net/wireless/ath/ath9k/xmit.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c
index 0644f1e91887..501b72821b4d 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)
@@ -2077,8 +2077,8 @@ static void ath_wake_mac80211_queue(struct ath_softc *sc, struct ath_txq *txq)
2077 2077
2078 spin_lock_bh(&txq->axq_lock); 2078 spin_lock_bh(&txq->axq_lock);
2079 if (txq->stopped && sc->tx.pending_frames[qnum] < ATH_MAX_QDEPTH) { 2079 if (txq->stopped && sc->tx.pending_frames[qnum] < ATH_MAX_QDEPTH) {
2080 ath_mac80211_start_queue(sc, qnum); 2080 if (ath_mac80211_start_queue(sc, qnum))
2081 txq->stopped = 0; 2081 txq->stopped = 0;
2082 } 2082 }
2083 spin_unlock_bh(&txq->axq_lock); 2083 spin_unlock_bh(&txq->axq_lock);
2084} 2084}