Message ID | 20200409082849.27372-1-madhuparnabhowmik10@gmail.com |
---|---|
State | Awaiting Upstream |
Delegated to: | David Miller |
Headers | show |
Series | [1/4] net: mac80211: util.c: Fix RCU list usage warnings | expand |
On Thu, 2020-04-09 at 13:58 +0530, madhuparnabhowmik10@gmail.com wrote: > From: Madhuparna Bhowmik <madhuparnabhowmik10@gmail.com> > > This patch fixes the following warning: > > WARNING: suspicious RCU usage > [ 84.530619] 5.6.0+ #4 Not tainted > [ 84.530637] ----------------------------- > [ 84.530658] net/mac80211/scan.c:454 RCU-list traversed in non-reader section!! > > As local->mtx is held in __ieee80211_scan_completed() Yeah, but is that really the right lock? I think it should be RTNL or iflist_mtx for the interface list. (Not that this is necessarily a good idea - we perhaps should clean up and significantly reduce the number of locks used here.) johannes
diff --git a/net/mac80211/scan.c b/net/mac80211/scan.c index fdac8192a519..0860f028ab2a 100644 --- a/net/mac80211/scan.c +++ b/net/mac80211/scan.c @@ -451,7 +451,7 @@ static void __ieee80211_scan_completed(struct ieee80211_hw *hw, bool aborted) * the scan was in progress; if there was none this will * just be a no-op for the particular interface. */ - list_for_each_entry_rcu(sdata, &local->interfaces, list) { + list_for_each_entry(sdata, &local->interfaces, list) { if (ieee80211_sdata_running(sdata)) ieee80211_queue_work(&sdata->local->hw, &sdata->work); }