summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorSara Sharon <sara.sharon@intel.com>2017-10-29 10:51:09 +0100
committerJohannes Berg <johannes.berg@intel.com>2017-11-27 11:24:59 +0100
commit72e2c3438ba3bd2ed640b6b5ea9e58993dd9ab7f (patch)
tree07ec40a12553423a5ade5effcd69ae65d5f351ca /net
parentmac80211: fix the update of path metric for RANN frame (diff)
downloadlinux-72e2c3438ba3bd2ed640b6b5ea9e58993dd9ab7f.tar.xz
linux-72e2c3438ba3bd2ed640b6b5ea9e58993dd9ab7f.zip
mac80211: tear down RX aggregations first
When doing HW restart we tear down aggregations. Since at this point we are not TX'ing any aggregation, while the peer is still sending RX aggregation over the air, it will make sense to tear down the RX aggregations first. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net')
-rw-r--r--net/mac80211/ht.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/mac80211/ht.c b/net/mac80211/ht.c
index 41f5e48f8021..167f83b853e6 100644
--- a/net/mac80211/ht.c
+++ b/net/mac80211/ht.c
@@ -292,7 +292,6 @@ void ieee80211_sta_tear_down_BA_sessions(struct sta_info *sta,
mutex_lock(&sta->ampdu_mlme.mtx);
for (i = 0; i < IEEE80211_NUM_TIDS; i++) {
- ___ieee80211_stop_tx_ba_session(sta, i, reason);
___ieee80211_stop_rx_ba_session(sta, i, WLAN_BACK_RECIPIENT,
WLAN_REASON_QSTA_LEAVE_QBSS,
reason != AGG_STOP_DESTROY_STA &&
@@ -300,6 +299,9 @@ void ieee80211_sta_tear_down_BA_sessions(struct sta_info *sta,
}
mutex_unlock(&sta->ampdu_mlme.mtx);
+ for (i = 0; i < IEEE80211_NUM_TIDS; i++)
+ ___ieee80211_stop_tx_ba_session(sta, i, reason);
+
/* stopping might queue the work again - so cancel only afterwards */
cancel_work_sync(&sta->ampdu_mlme.work);