wifi: mac80211: don't recreate driver link debugfs in reconfig
authorJohannes Berg <johannes.berg@intel.com>
Thu, 28 Sep 2023 14:35:24 +0000 (17:35 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 20 Nov 2023 10:59:02 +0000 (11:59 +0100)
[ Upstream commit 822cab1987a0e028e38b60aecd98af0289b46e7b ]

We can delete any that we want to remove, but we can't
recreate the links as they already exist.

Fixes: 170cd6a66d9a ("wifi: mac80211: add netdev per-link debugfs data and driver hook")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20230928172905.3d0214838421.I512a0ff86f631ff42bf25ea0cb2e8e8616794a94@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/mac80211/driver-ops.c

index 30cd0c9..aa37a14 100644 (file)
@@ -510,10 +510,13 @@ int drv_change_vif_links(struct ieee80211_local *local,
        if (ret)
                return ret;
 
-       for_each_set_bit(link_id, &links_to_add, IEEE80211_MLD_MAX_NUM_LINKS) {
-               link = rcu_access_pointer(sdata->link[link_id]);
+       if (!local->in_reconfig) {
+               for_each_set_bit(link_id, &links_to_add,
+                                IEEE80211_MLD_MAX_NUM_LINKS) {
+                       link = rcu_access_pointer(sdata->link[link_id]);
 
-               ieee80211_link_debugfs_drv_add(link);
+                       ieee80211_link_debugfs_drv_add(link);
+               }
        }
 
        return 0;