Re: [GIT] Networking

Linus Torvalds
2012-01-07T02:24:55Z

On Fri, Jan 6, 2012 at 6:07 PM, David Miller <davem@davemloft.net> wrote:
>
> Ok, we can take away those default Kconfig tags for the UDP and AF_UNIX
> bits, no problem.

I'd really like the basic rule to be that all new features start out
as 'default n'. Sure, some day they may be the common case, and then
we can add the 'default y' line, but we should wait for that to
happen, rather than try to push it. Because if the feature isn't so
compelling that distributions don't start enabling the *use* of it,
then we should acknowledge that too.

The one exception is that when an *old* feature is hidden behind a
*new* config option - if it used to be compiled in by default (even if
that was for a bad reason), we should still default to compiling it
in. So when you did the network driver Kconfig layout change, making
those vendor choices default to 'y' (in order to see the old drivers
that still existed under those choices) was the right thing to do, for
example. Otherwise it's just too easy for people to be confused and
not realize that they need to do something special in order to get
their old supported behavior.

And no, we have not always followed these rules. Too many new "cool
features" don't get a config option at all, and just bloat the kernel
whether they are used or not. And people don't even notice, because
then you don't even get the heads-up from trying to reconfigure the
kernel - the feature is just silently enabled without questions.
Sometimes that's the right thing to do ("avoid the pain of new config
options") but quite often it's just people being lazy. Oh well.

Linus