mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Josh Triplett <josh@joshtriplett.org>
To: Randy Dunlap <rdunlap@xenotime.net>
Cc: Tim Shepard <shep@alum.mit.edu>, linux-kernel@vger.kernel.org
Subject: Re: CONFIG_EXPERT is a booby trap
Date: Mon, 1 Oct 2012 16:06:43 -0700	[thread overview]
Message-ID: <20121001230642.GA10634@jtriplet-mobl1> (raw)
In-Reply-To: <50690CFE.6010600@xenotime.net>

On Sun, Sep 30, 2012 at 08:24:46PM -0700, Randy Dunlap wrote:
> On 09/30/2012 07:21 PM, Tim Shepard wrote:
> 
> > A month or two ago when I attempted to upgrade from 3.4 to 3.5 on my
> > MacBook Pro laptop, in preparation to try an interesting patch to TCP
> > developed against 3.5 by a colleague, my keyboard stopped working.  I
> > tried bisecting, but that lead to nowhere useful and much confusion.
> > 
> > 
> > It turns out that while I was looking for some debug options under
> > "General setup" and "Kernel hacking", I turned on "Configure standard
> > kernel features (expert users)" which is also known as CONFIG_EXPERT.
> > I read the documentation for that option, and I perused the options
> > which appeared underneath when it was turned on, thought to myself "oh,
> > hmm, I don't want to change any of these" and wandered off and
> > eventually found what I was actually looking for elsewhere in the
> > kernel configuration tree.
> > 
> > This weekend I finally figured out why the keyboard in my MacBook Pro
> > stopped working between 3.4 and 3.5.
> > 
> > When I turned on CONFIG_EXPERT it turned off CONFIG_HID_APPLE.  There
> > was no warning that selecting "Configure standard kernel features" will
> > invisibly turn off needed things elsewhere in the configuration tree.
> > 
> > Something needs to be fixed, but it's not obvious that any simple change
> > will work without causing other troubles.
> > 
> > I've read some of the lkml history history and learned that references
> > to CONFIG_EXPERT (like the one on CONFIG_HID_APPLE) used to be
> > references to CONFIG_EMBEDDED, so CONFIG_EXPERT used to mean something
> > else.
> > 
> > Maybe "make menuconfig" should show you all the things that you've just
> > changed and ask for confirmation when changing one configuration option
> > causes actual configuration changes elsewhere in the tree.
> > 
> > And may I suggest that CONFIG_EXPERT should be factored into two
> > CONFIGs, one of which makes configuration things visible, and another
> > which changes the default values to something more appropriate for
> > embedded systems (perhaps call it CONFIG_EMBEDDED_DEFAULTS).  That way
> > you'd have to select CONFIG_EXPERT, and then select the
> > CONFIG_EMBEDDED_DEFAULTS option that CONFIG_EXPERT made visible to
> > actually change any configuration, and the documentation for
> > CONFIG_EMBEDDED_DEFAULTS could explain that it changes defaults
> > throughout the tree (and selecting CONFIG_EXPERT alone would not go off
> > and muck things up with no warning).
> > 
> > The transition plan such a factoring needs some further thought to avoid
> > breaking anyone's current configuration when they "make oldconfig".
> 
> 
> I don't disagree with you that it can be a problem, but
> the help text for CONFIG_EXPERT does say:
> 
> 	Only use this if you really know what you are doing.
> 
> 
> Anyway, the hid drivers are certainly a big user of this mechanism.
> Many of them are like HID_APPLE:
> 
> config HID_APPLE
> 	tristate "Apple {i,Power,Mac}Books" if EXPERT
> 	depends on (USB_HID || BT_HIDP)
> 	default !EXPERT

This just seems blatantly wrong to me.  "if EXPERT" seems fine, but I'd
argue that these should just say "default y".  Then, turning off EXPERT
will give the *option* of turning them off, without turning them off by
default.  I think that reasoning applies to everything that currently
has EXPERT as part of its default expression.

That seems like an easy enough change to make, independently from any
addition of a CONFIG_EMBEDDED_DEFAULTS or similar.

- Josh Triplett

  parent reply	other threads:[~2012-10-01 23:06 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-01  2:21 Tim Shepard
2012-10-01  3:24 ` Randy Dunlap
2012-10-01  4:32   ` Tim Shepard
2012-10-01 18:07     ` Olaf Titz
2012-10-02  3:44     ` David Rientjes
2012-10-01 23:06   ` Josh Triplett [this message]
2012-10-01  9:09 ` Mikael Pettersson
2012-10-02  3:49 ` David Rientjes

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20121001230642.GA10634@jtriplet-mobl1 \
    --to=josh@joshtriplett.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rdunlap@xenotime.net \
    --cc=shep@alum.mit.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®