diff options
author | Johannes Berg <johannes.berg@intel.com> | 2023-08-28 13:59:35 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2023-09-11 11:27:19 +0200 |
commit | 1b6721189570b7955ff745934fb0e428313e6e51 (patch) | |
tree | 71dfe6848a6a73a03305c1a01271f23115904053 /net/mac80211/ht.c | |
parent | b920590f9a7f7359d37d260726b32dbb21b833be (diff) |
wifi: mac80211: convert A-MPDU work to wiphy work
Convert the A-MPDU work to wiphy work so it holds the
wiphy mutex and we can later guarantee that to drivers.
It might seem that we could run these concurrently for
different stations, but they're all on the ordered
mac80211 workqueue, so this shouldn't matter for that.
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/ht.c')
-rw-r--r-- | net/mac80211/ht.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/mac80211/ht.c b/net/mac80211/ht.c index 05f98f0a91a8..e8feed05528a 100644 --- a/net/mac80211/ht.c +++ b/net/mac80211/ht.c @@ -333,7 +333,7 @@ void ieee80211_sta_tear_down_BA_sessions(struct sta_info *sta, * the BA session, so handle it to properly clean tid_tx data. */ if(reason == AGG_STOP_DESTROY_STA) { - cancel_work_sync(&sta->ampdu_mlme.work); + wiphy_work_cancel(sta->local->hw.wiphy, &sta->ampdu_mlme.work); mutex_lock(&sta->ampdu_mlme.mtx); for (i = 0; i < IEEE80211_NUM_TIDS; i++) { @@ -350,7 +350,7 @@ void ieee80211_sta_tear_down_BA_sessions(struct sta_info *sta, } } -void ieee80211_ba_session_work(struct work_struct *work) +void ieee80211_ba_session_work(struct wiphy *wiphy, struct wiphy_work *work) { struct sta_info *sta = container_of(work, struct sta_info, ampdu_mlme.work); @@ -416,7 +416,7 @@ void ieee80211_ba_session_work(struct work_struct *work) mutex_unlock(&sta->ampdu_mlme.mtx); - ieee80211_queue_work(&sdata->local->hw, work); + wiphy_work_queue(sdata->local->hw.wiphy, work); return; } |