Re: linux-next: Tree for Aug 22 (evm)

From: Mimi Zohar
Date: Fri Aug 26 2011 - 08:39:12 EST


On Tue, 2011-08-23 at 22:10 -0400, Arnaud Lacombe wrote:
> Hi,
>
> On Tue, Aug 23, 2011 at 7:40 PM, Randy Dunlap <rdunlap@xxxxxxxxxxxx> wrote:
> > I think that you are going to need to do something like Arnaud suggested
> > and use "depends on TCG_TPM=y" instead of just "depends on TCG_TPM",
> > unless you can convince someone that this is a kconfig bug.
> >
> dammit... I guess there is...
>
> If you consider the following Kconfig:
>
> config MOD
> bool
> default y
> option modules
>
> config EXPERIMENTAL
> bool
> default y
>
> menuconfig A
> tristate "A"
> depends on EXPERIMENTAL
>
> config B
> bool "B"
>
> config B0
> bool
>
> config C
> tristate "C"
> depends on B
>
> config C0
> tristate
>
> config D
> boolean "D"
> depends on A && B
> select C
> select C0
>
> config E
> tristate "E"
>
> config F
> tristate "F"
> select E
>
> B (KEYS) allows to set C (TRUSTED_KEYS). Also, B (KEYS) and A
> (TCG_TPM) allows to set D (EVM), which will select (C). Now,
> menuconfig highlight the problem very well. Proceeding as following
> A=m, B=y, C=m, E=y, F=y, we ends up having:
>
> <M> A --->
> [*] B
> {M} C
> [*] D
> -*- E
> <*> F
>
> which translate in the following config:
>
> CONFIG_MOD=y
> CONFIG_EXPERIMENTAL=y
> CONFIG_A=m
> CONFIG_B=y
> CONFIG_C=m
> CONFIG_C0=m
> CONFIG_D=y
> CONFIG_E=y
> CONFIG_F=y
>
> I would have expected CONFIG_C and CONFIG_C0 to be 'y', just as 'E'.
> If you remove D's dependency on 'A', everything works as expected. So
> it would seem direct dependency state influence the state of reverse
> dependencies...
>
> Will have a look...
>
> - Arnaud

Thanks for looking into this! Instead of changing 'TCG_TPM' to
'TCG_TPM=y', the dependency should be on 'TRUSTED_KEYS=y'. Then when
I've refactored ENCRYPTED_KEYS, removing the ENCRYPTED_KEYS dependency
on TRUSTED_KEYS, the EVM dependency would be '(TRUSTED_KEYS=y ||
TRUSTED_KEYS=n)'. Do you want a temporary fix for now?

thanks,

Mimi

--
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/