diff options
Diffstat (limited to 'package/mac80211/patches/540-ath9k_aggr_fix.patch')
-rw-r--r-- | package/mac80211/patches/540-ath9k_aggr_fix.patch | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/package/mac80211/patches/540-ath9k_aggr_fix.patch b/package/mac80211/patches/540-ath9k_aggr_fix.patch deleted file mode 100644 index 0c9d887acf..0000000000 --- a/package/mac80211/patches/540-ath9k_aggr_fix.patch +++ /dev/null @@ -1,35 +0,0 @@ ---- a/drivers/net/wireless/ath/ath9k/xmit.c -+++ b/drivers/net/wireless/ath/ath9k/xmit.c -@@ -329,7 +329,6 @@ static void ath_tx_complete_aggr(struct - int isaggr, txfail, txpending, sendbar = 0, needreset = 0, nbad = 0; - bool rc_update = true; - struct ieee80211_tx_rate rates[4]; -- unsigned long flags; - - skb = bf->bf_mpdu; - hdr = (struct ieee80211_hdr *)skb->data; -@@ -346,9 +345,21 @@ static void ath_tx_complete_aggr(struct - if (!sta) { - rcu_read_unlock(); - -- spin_lock_irqsave(&sc->tx.txbuflock, flags); -- list_splice_tail_init(bf_q, &sc->tx.txbuf); -- spin_unlock_irqrestore(&sc->tx.txbuflock, flags); -+ INIT_LIST_HEAD(&bf_head); -+ while (bf) { -+ bf_next = bf->bf_next; -+ -+ bf->bf_state.bf_type |= BUF_XRETRY; -+ if ((sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) || -+ !bf->bf_stale || bf_next != NULL) -+ list_move_tail(&bf->list, &bf_head); -+ -+ ath_tx_rc_status(bf, ts, 0, 0, false); -+ ath_tx_complete_buf(sc, bf, txq, &bf_head, ts, -+ 0, 0); -+ -+ bf = bf_next; -+ } - return; - } - |