Re: [PATCH v2] net: enable wireless core features with LEGACY_WEXT_ALLCONFIG

2019-09-09 Thread Greg KH
On Mon, Sep 09, 2019 at 07:24:29AM -0700, Mark Salyzyn wrote:
> On 9/6/19 4:30 PM, Greg KH wrote:
> > On Fri, Sep 06, 2019 at 12:24:00PM -0700, Mark Salyzyn wrote:
> > > In embedded environments the requirements are to be able to pick and
> > > chose which features one requires built into the kernel.  If an
> > > embedded environment wants to supports loading modules that have been
> > > kbuilt out of tree, there is a need to enable hidden configurations
> > > for legacy wireless core features to provide the API surface for
> > > them to load.
> > > 
> > > Introduce CONFIG_LEGACY_WEXT_ALLCONFIG to select all legacy wireless
> > > extension core features by activating in turn all the associated
> > > hidden configuration options, without having to specifically select
> > > any wireless module(s).
> > > 
> > > Signed-off-by: Mark Salyzyn 
> > > Cc: kernel-t...@android.com
> > > Cc: Johannes Berg 
> > > Cc: "David S. Miller" 
> > > Cc: Marcel Holtmann 
> > > Cc: linux-wirel...@vger.kernel.org
> > > Cc: net...@vger.kernel.org
> > > Cc: linux-kernel@vger.kernel.org
> > > Cc: sta...@vger.kernel.org # 4.19
> > > ---
> > > v2: change name and documentation to CONFIG_LEGACY_WEXT_ALLCONFIG
> > > ---
> > >   net/wireless/Kconfig | 14 ++
> > >   1 file changed, 14 insertions(+)
> > > 
> > > diff --git a/net/wireless/Kconfig b/net/wireless/Kconfig
> > > index 67f8360dfcee..0d646cf28de5 100644
> > > --- a/net/wireless/Kconfig
> > > +++ b/net/wireless/Kconfig
> > > @@ -17,6 +17,20 @@ config WEXT_SPY
> > >   config WEXT_PRIV
> > >   bool
> > > +config LEGACY_WEXT_ALLCONFIG
> > > + bool "allconfig for legacy wireless extensions"
> > > + select WIRELESS_EXT
> > > + select WEXT_CORE
> > > + select WEXT_PROC
> > > + select WEXT_SPY
> > > + select WEXT_PRIV
> > > + help
> > > +   Config option used to enable all the legacy wireless extensions to
> > > +   the core functionality used by add-in modules.
> > > +
> > > +   If you are not building a kernel to be used for a variety of
> > > +   out-of-kernel built wireless modules, say N here.
> > > +
> > >   config CFG80211
> > >   tristate "cfg80211 - wireless configuration API"
> > >   depends on RFKILL || !RFKILL
> > > -- 
> > > 2.23.0.187.g17f5b7556c-goog
> > > 
> > How is this patch applicable to stable kernels???
> 
> A) worth a shot ;-}

Not nice, please, you know better :)

> B) there is a shortcoming in _all_ kernel versions with respect to hidden
> configurations options like this, hoping to set one precedent in how to
> handle them if acceptable to the community.

That's fine, but it's a new feature, not for stable.

> C) [AGENDA ALERT] Android _will_ be back-porting this to android-4.19 kernel
> anyway, would help maintenance if via stable. 

That's fine, lots of distros backport loads of stuff for new features
for stuff that is upstream.  That's trivial to do, don't try to abuse
the stable tree for new features like this please.  It only makes
maintainers grumpy when you do so :(

> D) Not an ABI or interface break, does not introduce instability, but rather
> keeps downstream kernels of any distributions from having to hack in their
> own alternate means of dealing with this problem leading to further
> fragmentation.

Again, new feature, not fixing a bug, so not applicable for stable.

For penance I require a handwritten copy of:
https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html

thanks,

greg k-h


Re: [PATCH v2] net: enable wireless core features with LEGACY_WEXT_ALLCONFIG

2019-09-09 Thread Jeff Johnson

On 2019-09-09 08:44, Johannes Berg wrote:

Also, you probably know this, but in this particular case you really
should just get rid of your wext dependencies


This.

Particularly for one out-of-tree driver with which I'm intimately 
familiar there has been considerable recent work to make all WEXT code 
correctly conditional, and nothing in the Android support should be 
reliant upon WEXT.


Re: [PATCH v2] net: enable wireless core features with LEGACY_WEXT_ALLCONFIG

2019-09-09 Thread Johannes Berg
On Mon, 2019-09-09 at 07:24 -0700, Mark Salyzyn wrote:
> 
> > How is this patch applicable to stable kernels???

I'm not sure I even buy the arguments to get it into the regular kernel.

> B) there is a shortcoming in _all_ kernel versions with respect to 
> hidden configurations options like this, hoping to set one precedent in 
> how to handle them if acceptable to the community.

This really is the only argument, I think, but I don't really see it as
a shortcoming. The kernel is handling this properly, after all, with
respect to itself. You just have issues with out-of-tree modules.

And while it is true, setting that precedent might ultimately mean we'll
end up with ~80 (**) new Kconfig options in net/ alone ... That's
certainly *NOT* a precedent I want to set nor the way I want to see this
handled, when we already get complaints that we're adding too many
Kconfig options (and those are ones we really do need).

Obviously, nothing stops you from putting this into your kernel (and I
guess you already are), but I don't really see how it benefits us as a
kernel community.

> E) Timely discussion item for LPC?

Perhaps you should indeed drive that discussion there, this really is
bigger than this particular wireless feature. At the very least, to
avoid Kconfig complexity explosion, add a single new

config OPTIONS_FOR_OUT_OF_TREE_MODULES
bool "..."
depends on EXPERT
help
  ...

and make LEGACY_WEXT_ALLCONFIG depend on that.

But if you're honest and obvious about it like that, I have a hard time
seeing you get that into the tree past Greg or Linus...


Also, you probably know this, but in this particular case you really
should just get rid of your wext dependencies ... this stuff is
literally decades old, and while that isn't necessarily a bad thing, it
also has issues that have been known for a decade or so that simply
cannot be solved.


(**) git grep "bool$" and "tristate$" in Kconfig files under net/ yields
a bit more, but here you already set 5, who knows. Still, even if it's
only 20 in the end that's too much.

johannes




Re: [PATCH v2] net: enable wireless core features with LEGACY_WEXT_ALLCONFIG

2019-09-09 Thread Mark Salyzyn

On 9/6/19 4:30 PM, Greg KH wrote:

On Fri, Sep 06, 2019 at 12:24:00PM -0700, Mark Salyzyn wrote:

In embedded environments the requirements are to be able to pick and
chose which features one requires built into the kernel.  If an
embedded environment wants to supports loading modules that have been
kbuilt out of tree, there is a need to enable hidden configurations
for legacy wireless core features to provide the API surface for
them to load.

Introduce CONFIG_LEGACY_WEXT_ALLCONFIG to select all legacy wireless
extension core features by activating in turn all the associated
hidden configuration options, without having to specifically select
any wireless module(s).

Signed-off-by: Mark Salyzyn 
Cc: kernel-t...@android.com
Cc: Johannes Berg 
Cc: "David S. Miller" 
Cc: Marcel Holtmann 
Cc: linux-wirel...@vger.kernel.org
Cc: net...@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: sta...@vger.kernel.org # 4.19
---
v2: change name and documentation to CONFIG_LEGACY_WEXT_ALLCONFIG
---
  net/wireless/Kconfig | 14 ++
  1 file changed, 14 insertions(+)

diff --git a/net/wireless/Kconfig b/net/wireless/Kconfig
index 67f8360dfcee..0d646cf28de5 100644
--- a/net/wireless/Kconfig
+++ b/net/wireless/Kconfig
@@ -17,6 +17,20 @@ config WEXT_SPY
  config WEXT_PRIV
bool
  
+config LEGACY_WEXT_ALLCONFIG

+   bool "allconfig for legacy wireless extensions"
+   select WIRELESS_EXT
+   select WEXT_CORE
+   select WEXT_PROC
+   select WEXT_SPY
+   select WEXT_PRIV
+   help
+ Config option used to enable all the legacy wireless extensions to
+ the core functionality used by add-in modules.
+
+ If you are not building a kernel to be used for a variety of
+ out-of-kernel built wireless modules, say N here.
+
  config CFG80211
tristate "cfg80211 - wireless configuration API"
depends on RFKILL || !RFKILL
--
2.23.0.187.g17f5b7556c-goog


How is this patch applicable to stable kernels???


A) worth a shot ;-}

B) there is a shortcoming in _all_ kernel versions with respect to 
hidden configurations options like this, hoping to set one precedent in 
how to handle them if acceptable to the community.


C) [AGENDA ALERT] Android _will_ be back-porting this to android-4.19 
kernel anyway, would help maintenance if via stable. 


D) Not an ABI or interface break, does not introduce instability, but 
rather keeps downstream kernels of any distributions from having to hack 
in their own alternate means of dealing with this problem leading to 
further fragmentation.


E) Timely discussion item for LPC?

Sincerely -- Mark Salyzyn



Re: [PATCH v2] net: enable wireless core features with LEGACY_WEXT_ALLCONFIG

2019-09-06 Thread Greg KH
On Fri, Sep 06, 2019 at 12:24:00PM -0700, Mark Salyzyn wrote:
> In embedded environments the requirements are to be able to pick and
> chose which features one requires built into the kernel.  If an
> embedded environment wants to supports loading modules that have been
> kbuilt out of tree, there is a need to enable hidden configurations
> for legacy wireless core features to provide the API surface for
> them to load.
> 
> Introduce CONFIG_LEGACY_WEXT_ALLCONFIG to select all legacy wireless
> extension core features by activating in turn all the associated
> hidden configuration options, without having to specifically select
> any wireless module(s).
> 
> Signed-off-by: Mark Salyzyn 
> Cc: kernel-t...@android.com
> Cc: Johannes Berg 
> Cc: "David S. Miller" 
> Cc: Marcel Holtmann 
> Cc: linux-wirel...@vger.kernel.org
> Cc: net...@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Cc: sta...@vger.kernel.org # 4.19
> ---
> v2: change name and documentation to CONFIG_LEGACY_WEXT_ALLCONFIG
> ---
>  net/wireless/Kconfig | 14 ++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/net/wireless/Kconfig b/net/wireless/Kconfig
> index 67f8360dfcee..0d646cf28de5 100644
> --- a/net/wireless/Kconfig
> +++ b/net/wireless/Kconfig
> @@ -17,6 +17,20 @@ config WEXT_SPY
>  config WEXT_PRIV
>   bool
>  
> +config LEGACY_WEXT_ALLCONFIG
> + bool "allconfig for legacy wireless extensions"
> + select WIRELESS_EXT
> + select WEXT_CORE
> + select WEXT_PROC
> + select WEXT_SPY
> + select WEXT_PRIV
> + help
> +   Config option used to enable all the legacy wireless extensions to
> +   the core functionality used by add-in modules.
> +
> +   If you are not building a kernel to be used for a variety of
> +   out-of-kernel built wireless modules, say N here.
> +
>  config CFG80211
>   tristate "cfg80211 - wireless configuration API"
>   depends on RFKILL || !RFKILL
> -- 
> 2.23.0.187.g17f5b7556c-goog
> 

How is this patch applicable to stable kernels???