mac80211: Simplify locking in ieee80211_sta_tear_down_BA_sessions()
PATCH 1/1 mac80211: Simplify locking in ieee80211_sta_tear_down_BA_sessions()
Simplify the locking in ieee80211_sta_tear_down_BA_sessions() and lock sta->ampdu_mlme.mtx over the entire function instead of locking/unlocking it for each TID etc.
Signed-off-by Ilan Peer <[email protected]>
--- net/mac80211/ht.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-)
net/mac80211/ht.c +7 -5
@@ -290,13 +290,15 @@ void ieee80211_sta_tear_down_BA_sessions(struct sta_info *sta, {int i; +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 && - reason !=AGG_STOP_PEER_REQUEST ); +___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 && + reason !=AGG_STOP_PEER_REQUEST ); } +mutex_unlock (&sta->ampdu_mlme.mtx);/* stopping might queue the work again - so cancel only afterwards */ cancel_work_sync (&sta->ampdu_mlme.work);
Signature · 1 line
1.9.1