diff options
-rw-r--r-- | net/mac80211/scan.c | 1 | ||||
-rw-r--r-- | net/mac80211/work.c | 4 |
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 | } |
288 | EXPORT_SYMBOL(ieee80211_scan_completed); | 289 | EXPORT_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; |