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)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 23 Oct 2023 09:43:26 +0000 (11:43 +0200)
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>
net/mac80211/driver-ops.c

index 169dbbca54b6fa774bcf1e043576b1e7568ae8b1..9112715a749a43483149df158b664d514158d9d6 100644 (file)
@@ -526,10 +526,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;