Commit 733c498a authored by Johannes Berg's avatar Johannes Berg

wifi: mac80211: fix driver debugfs for vif type change

If a driver implements the change_interface() method, we switch
interface type without taking the interface down, but still will
recreate the debugfs for it since it's a new type. As such, we
should use the ieee80211_debugfs_recreate_netdev() function here
to also recreate the driver's files, if it is indeed from a type
change while up.

Link: https://msgid.link/20240129155402.7311a36ffeeb.I18df02bbeb685d4250911de5ffbaf090f60c3803@changeidSigned-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent dd6c064c
...@@ -997,8 +997,8 @@ static void add_link_files(struct ieee80211_link_data *link, ...@@ -997,8 +997,8 @@ static void add_link_files(struct ieee80211_link_data *link,
} }
} }
void ieee80211_debugfs_add_netdev(struct ieee80211_sub_if_data *sdata, static void ieee80211_debugfs_add_netdev(struct ieee80211_sub_if_data *sdata,
bool mld_vif) bool mld_vif)
{ {
char buf[10+IFNAMSIZ]; char buf[10+IFNAMSIZ];
......
...@@ -11,8 +11,6 @@ ...@@ -11,8 +11,6 @@
#include "ieee80211_i.h" #include "ieee80211_i.h"
#ifdef CONFIG_MAC80211_DEBUGFS #ifdef CONFIG_MAC80211_DEBUGFS
void ieee80211_debugfs_add_netdev(struct ieee80211_sub_if_data *sdata,
bool mld_vif);
void ieee80211_debugfs_remove_netdev(struct ieee80211_sub_if_data *sdata); void ieee80211_debugfs_remove_netdev(struct ieee80211_sub_if_data *sdata);
void ieee80211_debugfs_rename_netdev(struct ieee80211_sub_if_data *sdata); void ieee80211_debugfs_rename_netdev(struct ieee80211_sub_if_data *sdata);
void ieee80211_debugfs_recreate_netdev(struct ieee80211_sub_if_data *sdata, void ieee80211_debugfs_recreate_netdev(struct ieee80211_sub_if_data *sdata,
...@@ -24,9 +22,6 @@ void ieee80211_link_debugfs_remove(struct ieee80211_link_data *link); ...@@ -24,9 +22,6 @@ void ieee80211_link_debugfs_remove(struct ieee80211_link_data *link);
void ieee80211_link_debugfs_drv_add(struct ieee80211_link_data *link); void ieee80211_link_debugfs_drv_add(struct ieee80211_link_data *link);
void ieee80211_link_debugfs_drv_remove(struct ieee80211_link_data *link); void ieee80211_link_debugfs_drv_remove(struct ieee80211_link_data *link);
#else #else
static inline void ieee80211_debugfs_add_netdev(
struct ieee80211_sub_if_data *sdata, bool mld_vif)
{}
static inline void ieee80211_debugfs_remove_netdev( static inline void ieee80211_debugfs_remove_netdev(
struct ieee80211_sub_if_data *sdata) struct ieee80211_sub_if_data *sdata)
{} {}
......
...@@ -1783,7 +1783,7 @@ static void ieee80211_setup_sdata(struct ieee80211_sub_if_data *sdata, ...@@ -1783,7 +1783,7 @@ static void ieee80211_setup_sdata(struct ieee80211_sub_if_data *sdata,
/* need to do this after the switch so vif.type is correct */ /* need to do this after the switch so vif.type is correct */
ieee80211_link_setup(&sdata->deflink); ieee80211_link_setup(&sdata->deflink);
ieee80211_debugfs_add_netdev(sdata, false); ieee80211_debugfs_recreate_netdev(sdata, false);
} }
static int ieee80211_runtime_change_iftype(struct ieee80211_sub_if_data *sdata, static int ieee80211_runtime_change_iftype(struct ieee80211_sub_if_data *sdata,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment