diff mbox series

[RFC,1/2] wifi: wireless: warn on most wireless extension usage

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

Commit Message

Johannes Berg Nov. 4, 2022, 4:42 p.m. UTC
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.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
 net/wireless/wext-core.c | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

Comments

Kalle Valo Nov. 17, 2022, 10:48 a.m. UTC | #1
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?
Johannes Berg Nov. 17, 2022, 10:49 a.m. UTC | #2
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 mbox series

Patch

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)