]> Git Repo - linux.git/commitdiff
mac80211: tear down RX aggregations first
authorSara Sharon <[email protected]>
Sun, 29 Oct 2017 09:51:09 +0000 (11:51 +0200)
committerJohannes Berg <[email protected]>
Mon, 27 Nov 2017 10:24:59 +0000 (11:24 +0100)
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 <[email protected]>
Signed-off-by: Luca Coelho <[email protected]>
Signed-off-by: Johannes Berg <[email protected]>
net/mac80211/ht.c

index 41f5e48f802197218e79c976ea8f99d967cff91f..167f83b853e6bd391256e15ef99439b792e18cdc 100644 (file)
@@ -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);
 
This page took 0.059428 seconds and 4 git commands to generate.