Re: 2.6.23-git Kconfig regression

From: Jan Beulich
Date: Thu Jan 17 2008 - 03:16:00 EST


>>> David Brownell <david-b@xxxxxxxxxxx> 17.01.08 01:02 >>>
>On Wednesday 16 January 2008, Jan Beulich wrote:
>> >>> Randy Dunlap <rdunlap@xxxxxxxxxxxx> 20.10.07 05:21 >>>
>>
>> Sorry for only now getting back to this.
>>
>> >On Fri, 19 Oct 2007 19:55:35 -0700 Randy Dunlap wrote:
>> >
>> ...
>>
>> I'm pretty convinced that drivers/usb/gadget/Kconfig isn't really
>> written properly:
>
>That's orthogonal to whether that patch caused a regression,
>of course. The operational semantics have, except when they
>were changed, been that it did what it needed to do.
>
>
>> These prompt-less items should go after the choice (resulting
>> in the choice to become a boolean one),
>
>Maybe -- such a change would have been OK as part of the patch
>which changed the operational semantics of Kconfig.

I simply wasn't aware of dependencies on the hierarchy re-ordering
done inside menu_finalize() within choices, which is what broke this.
And I'm not convinced this hierarchy re-ordering is even fully
consistent in its current shape (i.e. it just happens to work for the
few cases it really is used in).

>>...
>> these options are just pointless except for avoiding
>>
>> #if defined(CONFIG_...) || defined(CONFIG_..._MODULE)'
>>
>> in C sources.
>
>Well, avoiding such error-prone idioms would seem good to me.
>They're common enough, and nasty. But that's not why those
>mechanisms are there.

But nevertheless there are CONFIG_USB_GADGET_* dependencies in
sources. But in a draft re-write of that Kconfig I found an easy way to
keep these anyway, so the point isn't a concern to me anymore.

>> In that latter case, the choice could become a tristate
>> one, allowing all of the selections to be built at once as modules
>> (which really seems to be the way distro kernels would want to use
>> it) or any one of them to be built in (the current behavior, except
>> that at present even when using these as a module only a single
>> one can be selected).
>
>The requirements are that (a) just one peripheral controller
>driver be selectable, and (b) that it be linked either
>statically or dynamically. Related, that for the gadget
>drivers (c) none may be selected until the peripheral
>controller driver they'll be used with is known, and either
>(d1) one may be statically linked, or else (d2) any number
>may be built as modules, with only one loaded at a time.

So I'll keep it that way.

>This stuff isn't for "distro" kernels; it's for embedded
>environments of the "only this hardware exists" sort.
>Space matters, and having small code matters. Nobody has
>been interested enough in an "embedded distro" model to
>provide patches enabling such stuff.

Why not make the whole thing depend on EMBEDDED then? Or is
development for this perhaps being done in non-embedded
environments?

Thanks for the clarification in any case, now I just needs Roman's
opinion on the re-ordering issue in order to come up with a revised
patch.

Jan

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/