From: Amol Grover Date: Wed, 19 Feb 2020 09:11:04 +0000 (+0530) Subject: cfg80211: Pass lockdep expression to RCU lists X-Git-Tag: v5.7-rc1~146^2~327^2~26 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3ee9306b353bdd0c0cd7cd3a549233e1ad44b608;p=thirdparty%2Flinux.git cfg80211: Pass lockdep expression to RCU lists rdev->sched_scan_req_list maybe traversed using list_for_each_entry_rcu outside an RCU read-side critical section but under the protection of rtnl_mutex. Hence, add corresponding lockdep expression to silence false-positive warnings, and harden RCU lists. Signed-off-by: Amol Grover Link: https://lore.kernel.org/r/20200219091102.10709-1-frextrite@gmail.com Signed-off-by: Johannes Berg --- diff --git a/net/wireless/scan.c b/net/wireless/scan.c index aef240fdf8df6..7f1af8f347b17 100644 --- a/net/wireless/scan.c +++ b/net/wireless/scan.c @@ -556,9 +556,8 @@ cfg80211_find_sched_scan_req(struct cfg80211_registered_device *rdev, u64 reqid) { struct cfg80211_sched_scan_request *pos; - WARN_ON_ONCE(!rcu_read_lock_held() && !lockdep_rtnl_is_held()); - - list_for_each_entry_rcu(pos, &rdev->sched_scan_req_list, list) { + list_for_each_entry_rcu(pos, &rdev->sched_scan_req_list, list, + lockdep_rtnl_is_held()) { if (pos->reqid == reqid) return pos; }