diff mbox

net/wireless: CFG80211_WEXT_EXPORT requires wireless extensions

Message ID 2303996.H1mYPouv05@wuerfel
State Awaiting Upstream, archived
Delegated to: David Miller
Headers show

Commit Message

Arnd Bergmann April 10, 2015, 10:29 p.m. UTC
The CFG80211_WEXT_EXPORT symbol is selected by two drivers that
make direct use of compat handlers for the wireless ioctls.
However, this has no effect when the wireless extensions themselves
are disabled, and results in a link error:

ERROR: "cfg80211_wext_giwrts" [drivers/net/wireless/orinoco/orinoco.ko] undefined!
ERROR: "cfg80211_wext_siwfrag" [drivers/net/wireless/orinoco/orinoco.ko] undefined!
ERROR: "cfg80211_wext_giwname" [drivers/net/wireless/ipw2x00/ipw2200.ko] undefined!

This changes the Kconfig logic so that CFG80211_WEXT can not
be disabled when CFG80211_WEXT_EXPORT is set.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: 2afe38d15cee01 ("cfg80211-wext: export symbols only when needed")


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Johannes Berg April 11, 2015, 6:16 a.m. UTC | #1
On Sat, 2015-04-11 at 00:29 +0200, Arnd Bergmann wrote:
> The CFG80211_WEXT_EXPORT symbol is selected by two drivers that
> make direct use of compat handlers for the wireless ioctls.
> However, this has no effect when the wireless extensions themselves
> are disabled, and results in a link error:
> 
> ERROR: "cfg80211_wext_giwrts" [drivers/net/wireless/orinoco/orinoco.ko] undefined!
> ERROR: "cfg80211_wext_siwfrag" [drivers/net/wireless/orinoco/orinoco.ko] undefined!
> ERROR: "cfg80211_wext_giwname" [drivers/net/wireless/ipw2x00/ipw2200.ko] undefined!
> 
> This changes the Kconfig logic so that CFG80211_WEXT can not
> be disabled when CFG80211_WEXT_EXPORT is set.

> +++ b/net/wireless/Kconfig
> @@ -178,7 +178,6 @@ config CFG80211_WEXT
>  	bool "cfg80211 wireless extensions compatibility"

(I added "if !CFG80211_WEXT_EXPORT" to this line)

>  	depends on CFG80211
>  	select WEXT_CORE
> -	default y if CFG80211_WEXT_EXPORT
>  	help
>  	  Enable this option if you need old userspace for wireless
>  	  extensions with cfg80211-based drivers.
> @@ -186,6 +185,7 @@ config CFG80211_WEXT
>  config CFG80211_WEXT_EXPORT
>  	bool
>  	depends on CFG80211
> +	select CFG80211_WEXT

This doesn't work afaict because select won't go through if this is
selected. I've already sent a fix for this in my latest pull request
that has the above.

johannes

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Paul Bolle April 11, 2015, 12:47 p.m. UTC | #2
On Sat, 2015-04-11 at 08:16 +0200, Johannes Berg wrote:
> On Sat, 2015-04-11 at 00:29 +0200, Arnd Bergmann wrote:
> >  config CFG80211_WEXT_EXPORT
> >  	bool
> >  	depends on CFG80211
> > +	select CFG80211_WEXT
> 
> This doesn't work afaict because select won't go through if this is
> selected.

It does work: a select of a Kconfig symbol will trigger the select
statements of that Kconfig symbol.


Paul Bolle

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Arnd Bergmann April 11, 2015, 8:41 p.m. UTC | #3
On Saturday 11 April 2015 08:16:51 Johannes Berg wrote:
> On Sat, 2015-04-11 at 00:29 +0200, Arnd Bergmann wrote:
> > The CFG80211_WEXT_EXPORT symbol is selected by two drivers that
> > make direct use of compat handlers for the wireless ioctls.
> > However, this has no effect when the wireless extensions themselves
> > are disabled, and results in a link error:
> > 
> > ERROR: "cfg80211_wext_giwrts" [drivers/net/wireless/orinoco/orinoco.ko] undefined!
> > ERROR: "cfg80211_wext_siwfrag" [drivers/net/wireless/orinoco/orinoco.ko] undefined!
> > ERROR: "cfg80211_wext_giwname" [drivers/net/wireless/ipw2x00/ipw2200.ko] undefined!
> > 
> > This changes the Kconfig logic so that CFG80211_WEXT can not
> > be disabled when CFG80211_WEXT_EXPORT is set.
> 
> > +++ b/net/wireless/Kconfig
> > @@ -178,7 +178,6 @@ config CFG80211_WEXT
> >       bool "cfg80211 wireless extensions compatibility"
> 
> (I added "if !CFG80211_WEXT_EXPORT" to this line)

Right, that works just as well, thanks!

> >       depends on CFG80211
> >       select WEXT_CORE
> > -     default y if CFG80211_WEXT_EXPORT
> >       help
> >         Enable this option if you need old userspace for wireless
> >         extensions with cfg80211-based drivers.
> > @@ -186,6 +185,7 @@ config CFG80211_WEXT
> >  config CFG80211_WEXT_EXPORT
> >       bool
> >       depends on CFG80211
> > +     select CFG80211_WEXT
> 
> This doesn't work afaict because select won't go through if this is
> selected. I've already sent a fix for this in my latest pull request
> that has the above.

As Paul commented, it does work, and I have of course checked that my
patch fixes the problem without introducing other build failures.

	Arnd
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Johannes Berg April 13, 2015, 8:09 a.m. UTC | #4
On Sat, 2015-04-11 at 22:41 +0200, Arnd Bergmann wrote:

> As Paul commented, it does work, and I have of course checked that my
> patch fixes the problem without introducing other build failures.

:-)
Ok, I learned something. I'm always careful with "select" because it has
some corner cases.

Anyway, my other patch is in net-next now, so it'll be fixed in a tree
near you soon :)

johannes

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/net/wireless/Kconfig b/net/wireless/Kconfig
index b13dfb4ff001..cb5eef396d5c 100644
--- a/net/wireless/Kconfig
+++ b/net/wireless/Kconfig
@@ -178,7 +178,6 @@  config CFG80211_WEXT
 	bool "cfg80211 wireless extensions compatibility"
 	depends on CFG80211
 	select WEXT_CORE
-	default y if CFG80211_WEXT_EXPORT
 	help
 	  Enable this option if you need old userspace for wireless
 	  extensions with cfg80211-based drivers.
@@ -186,6 +185,7 @@  config CFG80211_WEXT
 config CFG80211_WEXT_EXPORT
 	bool
 	depends on CFG80211
+	select CFG80211_WEXT
 	help
 	  Drivers should select this option if they require cfg80211's
 	  wext compatibility symbols to be exported.