mirror of
https://github.com/torvalds/linux.git
synced 2026-05-25 15:41:52 +02:00
wifi: cfg80211: hold wiphy lock in cfg80211_any_wiphy_oper_chan()
We have the RTNL here for the iteration, but we need to lock each wiphy separately as well for using its data. Hold the wiphy lock for all of the ones in the iteration. Note that this implies we cannot already hold the wiphy mutex for the wiphy passed by the argument, but that's true now. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
beb2df475b
commit
fa8809a519
|
|
@ -824,13 +824,17 @@ bool cfg80211_any_wiphy_oper_chan(struct wiphy *wiphy,
|
|||
return false;
|
||||
|
||||
for_each_rdev(rdev) {
|
||||
bool found;
|
||||
|
||||
if (!reg_dfs_domain_same(wiphy, &rdev->wiphy))
|
||||
continue;
|
||||
|
||||
if (cfg80211_is_wiphy_oper_chan(&rdev->wiphy, chan))
|
||||
return true;
|
||||
wiphy_lock(&rdev->wiphy);
|
||||
found = cfg80211_is_wiphy_oper_chan(&rdev->wiphy, chan) ||
|
||||
cfg80211_offchan_chain_is_active(rdev, chan);
|
||||
wiphy_unlock(&rdev->wiphy);
|
||||
|
||||
if (cfg80211_offchan_chain_is_active(rdev, chan))
|
||||
if (found)
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user