Kconfig configuration restore bug [Was: x86: vSMP selection in config]

From: Sam Ravnborg
Date: Tue Feb 26 2008 - 14:41:36 EST


Hi Roman.

We discovered a situation where we could set a
choice value in menuconfig but later when we either was
running menuconfig or oldconfig the value were changed.

I have created a minimal config that exhibit the error.
It was created in a pure mechanical trial-and-error fashion.

First the minimal Kconfig file:
# x86 configuration

choice
prompt "Subarchitecture Type"

config X86_PC
bool "PC-compatible"

config X86_VOYAGER
bool "Voyager (NCR)"

config X86_VSMP
bool "Support for ScaleMP vSMP"
depends on PCI

endchoice

config PCI
bool "PCI support" if !X86_VISWS
depends on !X86_VOYAGER
default y


config USB_ARCH_HAS_HCD
bool
default PCI

config USB
bool "Support for Host-side USB"
depends on USB_ARCH_HAS_HCD

config USB_PHIDGET
bool "USB Phidgets drivers"
depends on USB

config USB_PHIDGETMOTORCONTROL
bool "USB PhidgetMotorControl support"
depends on USB_PHIDGET



Next the saved .config that is used:
#
# Automatically generated make config: don't edit
# Linux kernel version: KERNELVERSION
# Tue Feb 26 20:27:09 2008
#
# CONFIG_X86_PC is not set
# CONFIG_X86_VOYAGER is not set
CONFIG_X86_VSMP=y
CONFIG_PCI=y
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB=y
# CONFIG_USB_PHIDGET is not set

When we enter menuconfig or are running oldconfig then we can see
that CONFIG_X86_PC is set to 'y' and CONFIG_X86_VSMP is set to 'n'.

If I in menuconfig select VSMP this setting is saved but then
oldconfig kicks in and we loose the setting again.

If I delete any of the config variables in the sample above then
we no longer change the values and we keep the VSMP equals 'y'.


Can you please take a look at this.

Thanks,
Sam
--
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/