mac80211: fix locking in ieee80211_restart_work()
authorJohannes Berg <johannes.berg@intel.com>
Tue, 17 Aug 2021 10:12:22 +0000 (12:12 +0200)
committerJakub Kicinski <kuba@kernel.org>
Tue, 17 Aug 2021 13:51:43 +0000 (06:51 -0700)
Ilan's change to move locking around accidentally lost the
wiphy_lock() during some porting, add it back.

Fixes: 45daaa131841 ("mac80211: Properly WARN on HW scan before restart")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Link: https://lore.kernel.org/r/20210817121210.47bdb177064f.Ib1ef79440cd27f318c028ddfc0c642406917f512@changeid
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/mac80211/main.c

index 05f4c3c72619f7647f3c3e1465b652bac3108403..fcae76ddd586cf5dbac7aa17a53656245e0eaefa 100644 (file)
@@ -260,6 +260,8 @@ static void ieee80211_restart_work(struct work_struct *work)
        flush_work(&local->radar_detected_work);
 
        rtnl_lock();
+       /* we might do interface manipulations, so need both */
+       wiphy_lock(local->hw.wiphy);
 
        WARN(test_bit(SCAN_HW_SCANNING, &local->scanning),
             "%s called with hardware scan in progress\n", __func__);