summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2010-10-27 00:43:17 +0000
committerFelix Fietkau <nbd@openwrt.org>2010-10-27 00:43:17 +0000
commita82ff63978a32c3dfa350933c9236f926bb95330 (patch)
treee81a507329f567ea7aa2448c2300f3b1b4d4b6e0
parentf3fb5d55a57adbd225efdb4aa4140590127f26ae (diff)
downloadmtk-20170518-a82ff63978a32c3dfa350933c9236f926bb95330.zip
mtk-20170518-a82ff63978a32c3dfa350933c9236f926bb95330.tar.gz
mtk-20170518-a82ff63978a32c3dfa350933c9236f926bb95330.tar.bz2
ath9k: fix aggregation flush on ar9003
SVN-Revision: 23650
-rw-r--r--package/mac80211/patches/571-ath9k_ar9300_aggr_flush.patch34
1 files changed, 34 insertions, 0 deletions
diff --git a/package/mac80211/patches/571-ath9k_ar9300_aggr_flush.patch b/package/mac80211/patches/571-ath9k_ar9300_aggr_flush.patch
new file mode 100644
index 0000000..3d4cfe8
--- /dev/null
+++ b/package/mac80211/patches/571-ath9k_ar9300_aggr_flush.patch
@@ -0,0 +1,34 @@
+--- a/drivers/net/wireless/ath/ath9k/xmit.c
++++ b/drivers/net/wireless/ath/ath9k/xmit.c
+@@ -1089,15 +1089,6 @@ void ath_draintxq(struct ath_softc *sc,
+ txq->axq_tx_inprogress = false;
+ spin_unlock_bh(&txq->axq_lock);
+
+- /* flush any pending frames if aggregation is enabled */
+- if (sc->sc_flags & SC_OP_TXAGGR) {
+- if (!retry_tx) {
+- spin_lock_bh(&txq->axq_lock);
+- ath_txq_drain_pending_buffers(sc, txq);
+- spin_unlock_bh(&txq->axq_lock);
+- }
+- }
+-
+ if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) {
+ spin_lock_bh(&txq->axq_lock);
+ while (!list_empty(&txq->txq_fifo_pending)) {
+@@ -1118,6 +1109,15 @@ void ath_draintxq(struct ath_softc *sc,
+ }
+ spin_unlock_bh(&txq->axq_lock);
+ }
++
++ /* flush any pending frames if aggregation is enabled */
++ if (sc->sc_flags & SC_OP_TXAGGR) {
++ if (!retry_tx) {
++ spin_lock_bh(&txq->axq_lock);
++ ath_txq_drain_pending_buffers(sc, txq);
++ spin_unlock_bh(&txq->axq_lock);
++ }
++ }
+ }
+
+ void ath_drain_all_txq(struct ath_softc *sc, bool retry_tx)