wifi: cfg80211: silence a sparse RCU warning
authorJohannes Berg <johannes.berg@intel.com>
Thu, 13 Oct 2022 17:41:51 +0000 (19:41 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 21 Oct 2022 10:34:46 +0000 (12:34 +0200)
All we're going to do with this pointer is assign it to
another __rcu pointer, but sparse can't see that, so
use rcu_access_pointer() to silence the warning here.

Fixes: c90b93b5b782 ("wifi: cfg80211: update hidden BSSes to avoid WARN_ON")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/scan.c

index 806a5f1..da752b0 100644 (file)
@@ -1674,7 +1674,9 @@ cfg80211_update_known_bss(struct cfg80211_registered_device *rdev,
                if (old == rcu_access_pointer(known->pub.ies))
                        rcu_assign_pointer(known->pub.ies, new->pub.beacon_ies);
 
-               cfg80211_update_hidden_bsses(known, new->pub.beacon_ies, old);
+               cfg80211_update_hidden_bsses(known,
+                                            rcu_access_pointer(new->pub.beacon_ies),
+                                            old);
 
                if (old)
                        kfree_rcu((struct cfg80211_bss_ies *)old, rcu_head);