Commit 87351d09 authored by Johannes Berg's avatar Johannes Berg

wifi: mac80211: ibss: move disconnect to wiphy work

Move the IBSS disconnect work to be a wiphy work.
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent ec3252bf
...@@ -561,7 +561,8 @@ void ieee80211_ibss_stop(struct ieee80211_sub_if_data *sdata) ...@@ -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) ...@@ -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, ...@@ -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) ...@@ -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 */
......
...@@ -553,7 +553,7 @@ struct ieee80211_if_managed { ...@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment