summaryrefslogtreecommitdiffstats
path: root/net/mac80211/driver-ops.c
diff options
context:
space:
mode:
authorMiri Korenblit <miriam.rachel.korenblit@intel.com>2023-09-28 16:35:25 +0200
committerJohannes Berg <johannes.berg@intel.com>2023-10-23 11:43:26 +0200
commita1f5dcb1c0c1e26a7e158ce9fc28355041f26909 (patch)
treed1b7316b7fc1eaaa3782b436d5e8670088419c35 /net/mac80211/driver-ops.c
parentwifi: mac80211: don't recreate driver link debugfs in reconfig (diff)
downloadlinux-a1f5dcb1c0c1e26a7e158ce9fc28355041f26909.tar.xz
linux-a1f5dcb1c0c1e26a7e158ce9fc28355041f26909.zip
wifi: mac80211: add a driver callback to add vif debugfs
Add a callback which the driver can use to add the vif debugfs. We used to have this back until commit d260ff12e776 ("mac80211: remove vif debugfs driver callbacks") where we thought that it will be easier to just add them during interface add/remove. However, now with multi-link, we want to have proper debugfs for drivers for multi-link where some files might be in the netdev for non-MLO connections, and in the links for MLO ones, so we need to do some reconstruction when switching the mode. Moving to this new call enables that and MLO drivers will have to use it for proper debugfs operation. Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com> 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.ac38913f6ab7.Iee731d746bb08fcc628fa776f337016a12dc62ac@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/driver-ops.c')
-rw-r--r--net/mac80211/driver-ops.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/net/mac80211/driver-ops.c b/net/mac80211/driver-ops.c
index 9112715a749a..08861ec61be9 100644
--- a/net/mac80211/driver-ops.c
+++ b/net/mac80211/driver-ops.c
@@ -72,10 +72,15 @@ int drv_add_interface(struct ieee80211_local *local,
ret = local->ops->add_interface(&local->hw, &sdata->vif);
trace_drv_return_int(local, ret);
- if (ret == 0)
- sdata->flags |= IEEE80211_SDATA_IN_DRIVER;
+ if (ret)
+ return ret;
- return ret;
+ sdata->flags |= IEEE80211_SDATA_IN_DRIVER;
+
+ if (!local->in_reconfig)
+ drv_vif_add_debugfs(local, sdata);
+
+ return 0;
}
int drv_change_interface(struct ieee80211_local *local,