Re: [tip:x86/urgent] x86/kconfig: Add a Kconfig shortcut for building working KVM guest kernels

Borislav Petkov
2013-05-01T20:35:16Z

On Wed, May 01, 2013 at 12:53:03PM -0700, David Rientjes wrote:
> since KVM_GUEST_COMMON_OPTIONS selects PCI_MSI without selecting PCI.
>
> If we select PCI in KVM_GUEST_COMMON_OPTIONS, we get:
>
> arch/x86/Kconfig:651:error: recursive dependency detected!
> arch/x86/Kconfig:651: symbol KVM_GUEST_COMMON_OPTIONS depends on HYPERVISOR_GUEST
> arch/x86/Kconfig:597: symbol HYPERVISOR_GUEST is selected by X86_VSMP
> arch/x86/Kconfig:388: symbol X86_VSMP depends on PCI
> arch/x86/Kconfig:2042: symbol PCI is selected by KVM_GUEST_COMMON_OPTIONS

Well, this was the reason why I dropped CONFIG_PCI from
KVM_GUEST_COMMON_OPTIONS in the first place - to not have the circular
dependency splat above and assuming that people simply have CONFIG_PCI
enabled already.

Well, off the top of my head, we could do the following; I'd need to
hammer on it for a while though before it feels ok with all that Kconfig
jumble. Unless someone has a better idea, of course...

---
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index e8fff2f4ecb7..4f8ef85b0633 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -389,7 +389,8 @@ config X86_VSMP
bool "ScaleMP vSMP"
select HYPERVISOR_GUEST
select PARAVIRT
- depends on X86_64 && PCI
+ select PCI
+ depends on X86_64
depends on X86_EXTENDED_PLATFORM
depends on SMP
---help---
@@ -664,6 +665,7 @@ config KVM_GUEST_COMMON_OPTIONS
select IP_PNP
select IP_PNP_DHCP
select BINFMT_ELF
+ select PCI
select PCI_MSI
select HAVE_ARCH_KGDB
select DEBUG_KERNEL
--

--
Regards/Gruss,
Boris.

Sent from a fat crate under my desk. Formatting is fine.
--