wifi: mac80211: ibss: move disconnect to wiphy work

Move the IBSS disconnect work to be a wiphy work.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Johannes Berg 2023-06-06 14:49:30 +02:00
parent ec3252bff7
commit 87351d0926
2 changed files with 9 additions and 7 deletions

View File

@ -561,7 +561,8 @@ void ieee80211_ibss_stop(struct ieee80211_sub_if_data *sdata)
{ {
struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; struct ieee80211_if_ibss *ifibss = &sdata->u.ibss;
cancel_work_sync(&ifibss->csa_connection_drop_work); wiphy_work_cancel(sdata->local->hw.wiphy,
&ifibss->csa_connection_drop_work);
} }
static struct sta_info *ieee80211_ibss_finish_sta(struct sta_info *sta) static struct sta_info *ieee80211_ibss_finish_sta(struct sta_info *sta)
@ -730,7 +731,8 @@ static void ieee80211_ibss_disconnect(struct ieee80211_sub_if_data *sdata)
mutex_unlock(&local->mtx); mutex_unlock(&local->mtx);
} }
static void ieee80211_csa_connection_drop_work(struct work_struct *work) static void ieee80211_csa_connection_drop_work(struct wiphy *wiphy,
struct wiphy_work *work)
{ {
struct ieee80211_sub_if_data *sdata = struct ieee80211_sub_if_data *sdata =
container_of(work, struct ieee80211_sub_if_data, container_of(work, struct ieee80211_sub_if_data,
@ -896,8 +898,8 @@ ieee80211_ibss_process_chanswitch(struct ieee80211_sub_if_data *sdata,
return true; return true;
disconnect: disconnect:
ibss_dbg(sdata, "Can't handle channel switch, disconnect\n"); ibss_dbg(sdata, "Can't handle channel switch, disconnect\n");
ieee80211_queue_work(&sdata->local->hw, wiphy_work_queue(sdata->local->hw.wiphy,
&ifibss->csa_connection_drop_work); &ifibss->csa_connection_drop_work);
ieee80211_ibss_csa_mark_radar(sdata); ieee80211_ibss_csa_mark_radar(sdata);
@ -1733,8 +1735,8 @@ void ieee80211_ibss_setup_sdata(struct ieee80211_sub_if_data *sdata)
timer_setup(&ifibss->timer, ieee80211_ibss_timer, 0); timer_setup(&ifibss->timer, ieee80211_ibss_timer, 0);
INIT_LIST_HEAD(&ifibss->incomplete_stations); INIT_LIST_HEAD(&ifibss->incomplete_stations);
spin_lock_init(&ifibss->incomplete_lock); spin_lock_init(&ifibss->incomplete_lock);
INIT_WORK(&ifibss->csa_connection_drop_work, wiphy_work_init(&ifibss->csa_connection_drop_work,
ieee80211_csa_connection_drop_work); ieee80211_csa_connection_drop_work);
} }
/* scan finished notification */ /* scan finished notification */

View File

@ -553,7 +553,7 @@ struct ieee80211_if_managed {
struct ieee80211_if_ibss { struct ieee80211_if_ibss {
struct timer_list timer; struct timer_list timer;
struct work_struct csa_connection_drop_work; struct wiphy_work csa_connection_drop_work;
unsigned long last_scan_completed; unsigned long last_scan_completed;