summaryrefslogtreecommitdiff
path: root/net/mac80211/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/util.c')
-rw-r--r--net/mac80211/util.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/net/mac80211/util.c b/net/mac80211/util.c
index 72e6292955b..180c23a86b9 100644
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -1446,6 +1446,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
struct ieee80211_hw *hw = &local->hw;
struct ieee80211_sub_if_data *sdata;
struct ieee80211_chanctx *ctx;
+ struct cfg80211_sched_scan_request *sched_scan_req;
struct sta_info *sta;
int res, i;
bool reconfig_due_to_wowlan = false;
@@ -1692,6 +1693,22 @@ int ieee80211_reconfig(struct ieee80211_local *local)
if (ieee80211_sdata_running(sdata))
ieee80211_enable_keys(sdata);
+ mutex_lock(&local->mtx);
+ sdata = rtnl_dereference(local->sched_scan_sdata);
+ if (sdata) {
+ if (sdata->sched_scan_stop_pending) {
+ ieee80211_sched_scan_stopped(&local->hw);
+ } else {
+ sched_scan_req = cfg80211_current_sched_scan_request(
+ local->hw.wiphy);
+ /* if sched_scan request is still available */
+ if (sched_scan_req)
+ drv_sched_scan_start(local, sdata,
+ sched_scan_req,
+ &sdata->sched_scan_ies);
+ }
+ }
+ mutex_unlock(&local->mtx);
wake_up:
local->in_reconfig = false;
barrier();