wifi: mac80211: extend wiphy lock in interface removal
authorJohannes Berg <johannes.berg@intel.com>
Mon, 28 Aug 2023 11:59:59 +0000 (13:59 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 11 Sep 2023 09:27:22 +0000 (11:27 +0200)
We want to extend the wiphy locking to the interface list,
so move that into the section locked with the wiphy lock.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/iface.c

index c528a4bb7f4fec79578d5bb77593e6f1d4bb26ac..a465a18bf3bdefc16da27abec45b52501bd073f6 100644 (file)
@@ -2274,6 +2274,8 @@ void ieee80211_remove_interfaces(struct ieee80211_local *local)
         */
        cfg80211_shutdown_all_interfaces(local->hw.wiphy);
 
+       wiphy_lock(local->hw.wiphy);
+
        WARN(local->open_count, "%s: open count remains %d\n",
             wiphy_name(local->hw.wiphy), local->open_count);
 
@@ -2283,7 +2285,6 @@ void ieee80211_remove_interfaces(struct ieee80211_local *local)
        list_splice_init(&local->interfaces, &unreg_list);
        mutex_unlock(&local->iflist_mtx);
 
-       wiphy_lock(local->hw.wiphy);
        list_for_each_entry_safe(sdata, tmp, &unreg_list, list) {
                bool netdev = sdata->dev;