diff options
Diffstat (limited to 'net/wireless/scan.c')
-rw-r--r-- | net/wireless/scan.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/net/wireless/scan.c b/net/wireless/scan.c index 14d5f0c8c45f..9f0901f3e42b 100644 --- a/net/wireless/scan.c +++ b/net/wireless/scan.c | |||
@@ -322,9 +322,9 @@ cfg80211_find_sched_scan_req(struct cfg80211_registered_device *rdev, u64 reqid) | |||
322 | { | 322 | { |
323 | struct cfg80211_sched_scan_request *pos; | 323 | struct cfg80211_sched_scan_request *pos; |
324 | 324 | ||
325 | ASSERT_RTNL(); | 325 | WARN_ON_ONCE(!rcu_read_lock_held() && !lockdep_rtnl_is_held()); |
326 | 326 | ||
327 | list_for_each_entry(pos, &rdev->sched_scan_req_list, list) { | 327 | list_for_each_entry_rcu(pos, &rdev->sched_scan_req_list, list) { |
328 | if (pos->reqid == reqid) | 328 | if (pos->reqid == reqid) |
329 | return pos; | 329 | return pos; |
330 | } | 330 | } |
@@ -398,13 +398,13 @@ void cfg80211_sched_scan_results(struct wiphy *wiphy, u64 reqid) | |||
398 | trace_cfg80211_sched_scan_results(wiphy, reqid); | 398 | trace_cfg80211_sched_scan_results(wiphy, reqid); |
399 | /* ignore if we're not scanning */ | 399 | /* ignore if we're not scanning */ |
400 | 400 | ||
401 | rtnl_lock(); | 401 | rcu_read_lock(); |
402 | request = cfg80211_find_sched_scan_req(rdev, reqid); | 402 | request = cfg80211_find_sched_scan_req(rdev, reqid); |
403 | if (request) { | 403 | if (request) { |
404 | request->report_results = true; | 404 | request->report_results = true; |
405 | queue_work(cfg80211_wq, &rdev->sched_scan_res_wk); | 405 | queue_work(cfg80211_wq, &rdev->sched_scan_res_wk); |
406 | } | 406 | } |
407 | rtnl_unlock(); | 407 | rcu_read_unlock(); |
408 | } | 408 | } |
409 | EXPORT_SYMBOL(cfg80211_sched_scan_results); | 409 | EXPORT_SYMBOL(cfg80211_sched_scan_results); |
410 | 410 | ||