diff options
author | Johannes Berg <johannes.berg@intel.com> | 2023-06-06 14:34:48 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2023-06-06 14:51:32 +0200 |
commit | f7e60032c6618dfd643c7210d5cba2789e2de2e2 (patch) | |
tree | 54fa8f1843d4add3ad15202a8e315d370df4f175 /net/wireless | |
parent | wifi: cfg80211: fix locking in sched scan stop work (diff) | |
download | linux-f7e60032c6618dfd643c7210d5cba2789e2de2e2.tar.xz linux-f7e60032c6618dfd643c7210d5cba2789e2de2e2.zip |
wifi: cfg80211: fix locking in regulatory disconnect
This should use wiphy_lock() now instead of requiring the
RTNL, since __cfg80211_leave() via cfg80211_leave() is now
requiring that lock to be held.
Fixes: a05829a7222e ("cfg80211: avoid holding the RTNL when calling the driver")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/wireless')
-rw-r--r-- | net/wireless/reg.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/wireless/reg.c b/net/wireless/reg.c index 0d40d6af7e10..949e1fb3bec6 100644 --- a/net/wireless/reg.c +++ b/net/wireless/reg.c @@ -2440,11 +2440,11 @@ static void reg_leave_invalid_chans(struct wiphy *wiphy) struct wireless_dev *wdev; struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy); - ASSERT_RTNL(); - + wiphy_lock(wiphy); list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list) if (!reg_wdev_chan_valid(wiphy, wdev)) cfg80211_leave(rdev, wdev); + wiphy_unlock(wiphy); } static void reg_check_chans_work(struct work_struct *work) |