aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package/mac80211/patches/521-ath9k_aggr_race_fix.patch7
1 files changed, 5 insertions, 2 deletions
diff --git a/package/mac80211/patches/521-ath9k_aggr_race_fix.patch b/package/mac80211/patches/521-ath9k_aggr_race_fix.patch
index 0da1e6124d..0dbbc13f9b 100644
--- a/package/mac80211/patches/521-ath9k_aggr_race_fix.patch
+++ b/package/mac80211/patches/521-ath9k_aggr_race_fix.patch
@@ -41,12 +41,15 @@
void ath9k_enable_ps(struct ath_softc *sc);
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
-@@ -1968,7 +1968,7 @@ static int ath9k_ampdu_action(struct iee
+@@ -1968,8 +1968,9 @@ static int ath9k_ampdu_action(struct iee
break;
case IEEE80211_AMPDU_TX_START:
ath9k_ps_wakeup(sc);
- ath_tx_aggr_start(sc, sta, tid, ssn);
+- ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid);
+ ret = ath_tx_aggr_start(sc, sta, tid, ssn);
- ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid);
++ if (!ret)
++ ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid);
ath9k_ps_restore(sc);
break;
+ case IEEE80211_AMPDU_TX_STOP: