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:
parent
ec3252bff7
commit
87351d0926
@ -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 */
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user