aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/mac80211/main.c1
-rw-r--r--net/mac80211/scan.c8
2 files changed, 9 insertions, 0 deletions
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index ed4c8e66b44a..8190bf27ebff 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -248,6 +248,7 @@ static void ieee80211_restart_work(struct work_struct *work)
248 248
249 /* wait for scan work complete */ 249 /* wait for scan work complete */
250 flush_workqueue(local->workqueue); 250 flush_workqueue(local->workqueue);
251 flush_work(&local->sched_scan_stopped_work);
251 252
252 WARN(test_bit(SCAN_HW_SCANNING, &local->scanning), 253 WARN(test_bit(SCAN_HW_SCANNING, &local->scanning),
253 "%s called with hardware scan in progress\n", __func__); 254 "%s called with hardware scan in progress\n", __func__);
diff --git a/net/mac80211/scan.c b/net/mac80211/scan.c
index a413e52f7691..8eb68ef42e8c 100644
--- a/net/mac80211/scan.c
+++ b/net/mac80211/scan.c
@@ -1213,6 +1213,14 @@ void ieee80211_sched_scan_stopped(struct ieee80211_hw *hw)
1213 1213
1214 trace_api_sched_scan_stopped(local); 1214 trace_api_sched_scan_stopped(local);
1215 1215
1216 /*
1217 * this shouldn't really happen, so for simplicity
1218 * simply ignore it, and let mac80211 reconfigure
1219 * the sched scan later on.
1220 */
1221 if (local->in_reconfig)
1222 return;
1223
1216 schedule_work(&local->sched_scan_stopped_work); 1224 schedule_work(&local->sched_scan_stopped_work);
1217} 1225}
1218EXPORT_SYMBOL(ieee80211_sched_scan_stopped); 1226EXPORT_SYMBOL(ieee80211_sched_scan_stopped);