2019-12-10 14:41:27

by Alyssa Ross

[permalink] [raw]
Subject: Bogus dependency for HW_RANDOM_VIRTIO with oldconfig

I'm new here and not sure if I'm contacting the correct people/groups --
please point me in the right direction if not. I don't know if the
culprit here is Kconfig, the virtio Kconfig file, the hw_random Kconfig
file, or some combination of those.

I believe I have discovered an issue with the order in which make
oldconfig asks for virtio-related options, and would appreciate some
advice on how to solve it:

HW_RANDOM_VIRTIO=y depends on VIRTIO=y. In my kernel, VIRTIO=y is
selected by VIRITO_PCI=y, but when make oldconfig prompts for
HW_RANDOM_VIRTIO, VIRTIO_PCI has not been prompted for yet, and so
VIRTIO is still set to m.

This means that it's not possible for me to set HW_RANDOM_VIRTIO=y using
oldconfig without setting an VIRTIO-selecting option I don't need, but
that is prompted for _before_ HW_RANDOM_VIRTIO. One such option that I
have identified so far is VOP. It is prompted for before
HW_RANDOM_VIRTIO, and so if I set VOP=y it is now possible to set
HW_RANDOM_VIRTIO.

When using menuconfig on a config file generated with oldconfig, that
does not have HW_RANDOM_VIRTIO enabled, I am able to set HW_RANDOM=y and
HW_RANDOM_VIRTIO=y, and after saving I can confirm that no other changes
have been made to the configuration file. This tells me that there's no
need for a dependency on e.g. VOP, except when using oldconfig.

So, I think there is an ordering issue here, and that oldconfig
should not prompt for HW_RANDOM_VIRTIO until after any option that might
select VIRTIO=y.

I would be happy to try to submit or test a patch to fix this, but I
don't know where to go from here.


2019-12-12 05:31:40

by Masahiro Yamada

[permalink] [raw]
Subject: Re: Bogus dependency for HW_RANDOM_VIRTIO with oldconfig

On Tue, Dec 10, 2019 at 11:41 PM Alyssa Ross <[email protected]> wrote:
>
> I'm new here and not sure if I'm contacting the correct people/groups --
> please point me in the right direction if not. I don't know if the
> culprit here is Kconfig, the virtio Kconfig file, the hw_random Kconfig
> file, or some combination of those.
>
> I believe I have discovered an issue with the order in which make
> oldconfig asks for virtio-related options, and would appreciate some
> advice on how to solve it:
>
> HW_RANDOM_VIRTIO=y depends on VIRTIO=y. In my kernel, VIRTIO=y is
> selected by VIRITO_PCI=y, but when make oldconfig prompts for
> HW_RANDOM_VIRTIO, VIRTIO_PCI has not been prompted for yet, and so
> VIRTIO is still set to m.
>
> This means that it's not possible for me to set HW_RANDOM_VIRTIO=y using
> oldconfig without setting an VIRTIO-selecting option I don't need, but
> that is prompted for _before_ HW_RANDOM_VIRTIO. One such option that I
> have identified so far is VOP. It is prompted for before
> HW_RANDOM_VIRTIO, and so if I set VOP=y it is now possible to set
> HW_RANDOM_VIRTIO.
>
> When using menuconfig on a config file generated with oldconfig, that
> does not have HW_RANDOM_VIRTIO enabled, I am able to set HW_RANDOM=y and
> HW_RANDOM_VIRTIO=y, and after saving I can confirm that no other changes
> have been made to the configuration file. This tells me that there's no
> need for a dependency on e.g. VOP, except when using oldconfig.

OK, you are right.

Actually, the oldconfig restarts when it finds a newly-visible option.
For example, when VIRTIO is changed from n to y,
oldconfig restarts the menu and shows a prompt for HW_RANDOM_VIRTIO.

But, this does not happen when VIRTIO is changed from m to y.

> So, I think there is an ordering issue here, and that oldconfig
> should not prompt for HW_RANDOM_VIRTIO until after any option that might
> select VIRTIO=y.
>
> I would be happy to try to submit or test a patch to fix this, but I
> don't know where to go from here.

Perhaps check_conf() could be fixed, though I have not looked into it yet.


--
Best Regards
Masahiro Yamada