aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/mac80211/scan.c1
-rw-r--r--net/mac80211/work.c4
2 files changed, 5 insertions, 0 deletions
diff --git a/net/mac80211/scan.c b/net/mac80211/scan.c
index a4c63d4e6845..30cb62bb45b3 100644
--- a/net/mac80211/scan.c
+++ b/net/mac80211/scan.c
@@ -284,6 +284,7 @@ void ieee80211_scan_completed(struct ieee80211_hw *hw, bool aborted)
284 ieee80211_mlme_notify_scan_completed(local); 284 ieee80211_mlme_notify_scan_completed(local);
285 ieee80211_ibss_notify_scan_completed(local); 285 ieee80211_ibss_notify_scan_completed(local);
286 ieee80211_mesh_notify_scan_completed(local); 286 ieee80211_mesh_notify_scan_completed(local);
287 ieee80211_queue_work(&local->hw, &local->work_work);
287} 288}
288EXPORT_SYMBOL(ieee80211_scan_completed); 289EXPORT_SYMBOL(ieee80211_scan_completed);
289 290
diff --git a/net/mac80211/work.c b/net/mac80211/work.c
index 5ba75990c9fd..7c5d95b1bc04 100644
--- a/net/mac80211/work.c
+++ b/net/mac80211/work.c
@@ -818,6 +818,7 @@ static void ieee80211_work_work(struct work_struct *work)
818 wk->chan == local->tmp_channel && 818 wk->chan == local->tmp_channel &&
819 wk->chan_type == local->tmp_channel_type) { 819 wk->chan_type == local->tmp_channel_type) {
820 wk->started = true; 820 wk->started = true;
821 wk->timeout = jiffies;
821 } 822 }
822 823
823 if (!wk->started && !local->tmp_channel) { 824 if (!wk->started && !local->tmp_channel) {
@@ -935,6 +936,9 @@ void ieee80211_add_work(struct ieee80211_work *wk)
935 if (WARN_ON(!wk->done)) 936 if (WARN_ON(!wk->done))
936 return; 937 return;
937 938
939 if (WARN_ON(!ieee80211_sdata_running(wk->sdata)))
940 return;
941
938 wk->started = false; 942 wk->started = false;
939 943
940 local = wk->sdata->local; 944 local = wk->sdata->local;