mirror of https://github.com/hak5/openwrt.git
33 lines
922 B
Diff
33 lines
922 B
Diff
|
--- 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
|
||
|
bf = bf_next;
|
||
|
}
|
||
|
|
||
|
+ /* prepend un-acked frames to the beginning of the pending frame queue */
|
||
|
+ if (!list_empty(&bf_pending)) {
|
||
|
+ spin_lock_bh(&txq->axq_lock);
|
||
|
+ list_splice(&bf_pending, &tid->buf_q);
|
||
|
+ ath_tx_queue_tid(txq, tid);
|
||
|
+ spin_unlock_bh(&txq->axq_lock);
|
||
|
+ }
|
||
|
+
|
||
|
if (tid->state & AGGR_CLEANUP) {
|
||
|
if (tid->baw_head == tid->baw_tail) {
|
||
|
tid->state &= ~AGGR_ADDBA_COMPLETE;
|
||
|
@@ -530,14 +538,6 @@ static void ath_tx_complete_aggr(struct
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
- /* prepend un-acked frames to the beginning of the pending frame queue */
|
||
|
- if (!list_empty(&bf_pending)) {
|
||
|
- spin_lock_bh(&txq->axq_lock);
|
||
|
- list_splice(&bf_pending, &tid->buf_q);
|
||
|
- ath_tx_queue_tid(txq, tid);
|
||
|
- spin_unlock_bh(&txq->axq_lock);
|
||
|
- }
|
||
|
-
|
||
|
rcu_read_unlock();
|
||
|
|
||
|
if (needreset)
|