Message ID | 20221104174218.26f9541c0bfa.Ifcf30eeeb8fc7019e4dcf2782b04515254d165e1@changeid (mailing list archive) |
---|---|
State | RFC |
Delegated to: | Johannes Berg |
Headers | show |
Series | [RFC,1/2] wifi: wireless: warn on most wireless extension usage | expand |
Johannes Berg <johannes@sipsolutions.net> writes: > From: Johannes Berg <johannes.berg@intel.com> > > With MLO/EHT support around the corner, we're going to > remove support for wireless extensions with new devices > since MLO cannot be properly indicated using them. > > Add a warning to indicate which processes are still > using wireless extensions, if being used with modern > (i.e. cfg80211) drivers. I doubt people outside of wireless know what MLO or EHT are :) Also it would be good to mention what's the replacement for wireless extensions so better to spell out that as well. So maybe use more widely known terminology like this: "With Wi-Fi 7 (IEEE 802.11be) support around the corner, we're going to remove support for wireless extensions with new devices since Multi-Link Operation (MLO) feature cannot be properly indicated using them. Add a warning to indicate which processes are still using the ancient wireless extensions, if being used with modern (i.e. cfg80211) drivers. All those users should be using nl80211 instead. Ancient drivers, which are not using cfg80211, are unaffected." > +#ifdef CONFIG_CFG80211_WEXT > +static void wireless_warn_cfg80211_wext(void) > +{ > + char name[sizeof(current->comm)]; > > + pr_warn_ratelimited("warning: `%s' uses wireless extensions that are deprecated for modern drivers\n", > + get_task_comm(name, current)); > +} > +#endif Maybe add ", switch to nl80211" also to the warning message?
On Thu, 2022-11-17 at 12:48 +0200, Kalle Valo wrote: > Johannes Berg <johannes@sipsolutions.net> writes: > > > From: Johannes Berg <johannes.berg@intel.com> > > > > With MLO/EHT support around the corner, we're going to > > remove support for wireless extensions with new devices > > since MLO cannot be properly indicated using them. > > > > Add a warning to indicate which processes are still > > using wireless extensions, if being used with modern > > (i.e. cfg80211) drivers. > > I doubt people outside of wireless know what MLO or EHT are :) Also it > would be good to mention what's the replacement for wireless extensions > so better to spell out that as well. So maybe use more widely known > terminology like this: > > "With Wi-Fi 7 (IEEE 802.11be) support around the corner, we're going to > remove support for wireless extensions with new devices since Multi-Link > Operation (MLO) feature cannot be properly indicated using them. > > Add a warning to indicate which processes are still using the ancient > wireless extensions, if being used with modern (i.e. cfg80211) drivers. > All those users should be using nl80211 instead. > > Ancient drivers, which are not using cfg80211, are unaffected." Sure, makes sense I guess. This might become a more referenced commit perhaps :-) > > +#ifdef CONFIG_CFG80211_WEXT > > +static void wireless_warn_cfg80211_wext(void) > > +{ > > + char name[sizeof(current->comm)]; > > > > + pr_warn_ratelimited("warning: `%s' uses wireless extensions that are deprecated for modern drivers\n", > > + get_task_comm(name, current)); > > +} > > +#endif > > Maybe add ", switch to nl80211" also to the warning message? > It already got so long ... but I guess that makes sense. johannes
diff --git a/net/wireless/wext-core.c b/net/wireless/wext-core.c index fe8765c4075d..cbeb8be214a8 100644 --- a/net/wireless/wext-core.c +++ b/net/wireless/wext-core.c @@ -636,7 +636,15 @@ void wireless_send_event(struct net_device * dev, } EXPORT_SYMBOL(wireless_send_event); +#ifdef CONFIG_CFG80211_WEXT +static void wireless_warn_cfg80211_wext(void) +{ + char name[sizeof(current->comm)]; + pr_warn_ratelimited("warning: `%s' uses wireless extensions that are deprecated for modern drivers\n", + get_task_comm(name, current)); +} +#endif /* IW handlers */ @@ -652,8 +660,10 @@ struct iw_statistics *get_wireless_stats(struct net_device *dev) if (dev->ieee80211_ptr && dev->ieee80211_ptr->wiphy && dev->ieee80211_ptr->wiphy->wext && - dev->ieee80211_ptr->wiphy->wext->get_wireless_stats) + dev->ieee80211_ptr->wiphy->wext->get_wireless_stats) { + wireless_warn_cfg80211_wext(); return dev->ieee80211_ptr->wiphy->wext->get_wireless_stats(dev); + } #endif /* not found */ @@ -690,8 +700,10 @@ static iw_handler get_handler(struct net_device *dev, unsigned int cmd) const struct iw_handler_def *handlers = NULL; #ifdef CONFIG_CFG80211_WEXT - if (dev->ieee80211_ptr && dev->ieee80211_ptr->wiphy) + if (dev->ieee80211_ptr && dev->ieee80211_ptr->wiphy) { + wireless_warn_cfg80211_wext(); handlers = dev->ieee80211_ptr->wiphy->wext; + } #endif #ifdef CONFIG_WIRELESS_EXT if (dev->wireless_handlers)