diff --git a/package/mac80211/patches/521-ath9k_aggr_race_fix.patch b/package/mac80211/patches/521-ath9k_aggr_race_fix.patch index 0da1e6124d6..0dbbc13f9b6 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: