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

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
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -561,7 +561,8 @@ void ieee80211_ibss_stop(struct ieee80211_sub_if_data *sdata)
{
	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)
@@ -730,7 +731,8 @@ static void ieee80211_ibss_disconnect(struct ieee80211_sub_if_data *sdata)
	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 =
		container_of(work, struct ieee80211_sub_if_data,
@@ -896,7 +898,7 @@ ieee80211_ibss_process_chanswitch(struct ieee80211_sub_if_data *sdata,
	return true;
disconnect:
	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);

	ieee80211_ibss_csa_mark_radar(sdata);
@@ -1733,7 +1735,7 @@ void ieee80211_ibss_setup_sdata(struct ieee80211_sub_if_data *sdata)
	timer_setup(&ifibss->timer, ieee80211_ibss_timer, 0);
	INIT_LIST_HEAD(&ifibss->incomplete_stations);
	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);
}

+1 −1
Original line number Diff line number Diff line
@@ -553,7 +553,7 @@ struct ieee80211_if_managed {

struct ieee80211_if_ibss {
	struct timer_list timer;
	struct work_struct csa_connection_drop_work;
	struct wiphy_work csa_connection_drop_work;

	unsigned long last_scan_completed;