2009-04-08 02:35:20

by Len Brown

[permalink] [raw]
Subject: 2.6.30-rc1 build failure - drivers/pci/dmar.o

In 2.6.30-rc1, drivers/pci/dmar.o fails to build when CONFIG_ACPI=n.

There are two ways to build dmar.o,
CONFIG_DMAR and CONFIG_INTR_REMAP,
and they both depend on CONFIG_ACPI.

The problem appears to be that CONFIG_INTR_REMAP can now be selected
when its dependences are not satisfied. It seems this regression
starts with the patch below.

Len Brown, Intel Open Source Technology Center


Author: Han, Weidong <[email protected]> 2009-04-03 05:15:50
Committer: David Woodhouse <[email protected]> 2009-04-04
05:42:28
Parent: 34aaaa948e3c9dd65b27fa499c5c9e8d8f1227cf (x86, dmar: check if it's
initialized before disable queue invalidation)
Branches: master, remotes/origin/master
Follows: v2.6.29
Precedes: v2.6.30-rc1

x2apic/intr-remap: decouple interrupt remapping from x2apic

interrupt remapping must be enabled before enabling x2apic, but
interrupt remapping doesn't depend on x2apic, it can be used
separately. Enable interrupt remapping in init_dmars even x2apic
is not supported.

[dwmw2: Update Kconfig accordingly, fix build with INTR_REMAP &&
!X2APIC]

Signed-off-by: Weidong Han <[email protected]>
Acked-by: Ingo Molnar <[email protected]>
Signed-off-by: David Woodhouse <[email protected]>
------------------------------- arch/x86/Kconfig
-------------------------------
index 3f27e5c..229cf61 100644
@@ -251,6 +251,7 @@ config SMP
config X86_X2APIC
bool "Support x2apic"
depends on X86_LOCAL_APIC && X86_64
+ select INTR_REMAP
---help---
This enables x2apic support on CPUs that have this feature.

@@ -1879,7 +1880,6 @@ config DMAR_FLOPPY_WA
config INTR_REMAP
bool "Support for Interrupt Remapping (EXPERIMENTAL)"
depends on X86_64 && X86_IO_APIC && PCI_MSI && ACPI &&
EXPERIMENTAL
- select X86_X2APIC
---help---
Supports Interrupt remapping for IO-APIC and MSI devices.
To use x2apic mode in the CPU's which support x2APIC
enhancements or


2009-04-08 02:48:31

by Weidong Han

[permalink] [raw]
Subject: RE: 2.6.30-rc1 build failure - drivers/pci/dmar.o

It's found and fixed by Ingo and David yesterday. The patch is posted belew. Ingo said he applied it to x86/urgent and will get it to Linus.

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 4b34082..bc25b9f 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -252,17 +252,13 @@ config SMP

config X86_X2APIC
bool "Support x2apic"
- depends on X86_LOCAL_APIC && X86_64
- select INTR_REMAP
+ depends on X86_LOCAL_APIC && X86_64 && INTR_REMAP
---help---
This enables x2apic support on CPUs that have this feature.

This allows 32-bit apic IDs (so it can support very large systems),
and accesses the local apic via MSRs not via mmio.

- ( On certain CPU models you may need to enable INTR_REMAP too,
- to get functional x2apic mode. )
-
If you don't know what to do here, say N.

config SPARSE_IRQ


Regards,
Weidong

Len Brown wrote:
> In 2.6.30-rc1, drivers/pci/dmar.o fails to build when CONFIG_ACPI=n.
>
> There are two ways to build dmar.o,
> CONFIG_DMAR and CONFIG_INTR_REMAP,
> and they both depend on CONFIG_ACPI.
>
> The problem appears to be that CONFIG_INTR_REMAP can now be selected
> when its dependences are not satisfied. It seems this regression
> starts with the patch below.
>
> Len Brown, Intel Open Source Technology Center
>
>
> Author: Han, Weidong <[email protected]> 2009-04-03 05:15:50
> Committer: David Woodhouse <[email protected]> 2009-04-04
> 05:42:28
> Parent: 34aaaa948e3c9dd65b27fa499c5c9e8d8f1227cf (x86, dmar: check if
> it's initialized before disable queue invalidation)
> Branches: master, remotes/origin/master
> Follows: v2.6.29
> Precedes: v2.6.30-rc1
>
> x2apic/intr-remap: decouple interrupt remapping from x2apic
>
> interrupt remapping must be enabled before enabling x2apic, but
> interrupt remapping doesn't depend on x2apic, it can be used
> separately. Enable interrupt remapping in init_dmars even x2apic
> is not supported.
>
> [dwmw2: Update Kconfig accordingly, fix build with INTR_REMAP &&
> !X2APIC]
>
> Signed-off-by: Weidong Han <[email protected]>
> Acked-by: Ingo Molnar <[email protected]>
> Signed-off-by: David Woodhouse <[email protected]>
> ------------------------------- arch/x86/Kconfig
> -------------------------------
> index 3f27e5c..229cf61 100644
> @@ -251,6 +251,7 @@ config SMP
> config X86_X2APIC
> bool "Support x2apic"
> depends on X86_LOCAL_APIC && X86_64
> + select INTR_REMAP
> ---help---
> This enables x2apic support on CPUs that have this feature.
>
> @@ -1879,7 +1880,6 @@ config DMAR_FLOPPY_WA
> config INTR_REMAP
> bool "Support for Interrupt Remapping (EXPERIMENTAL)"
> depends on X86_64 && X86_IO_APIC && PCI_MSI && ACPI &&
> EXPERIMENTAL
> - select X86_X2APIC
> ---help---
> Supports Interrupt remapping for IO-APIC and MSI devices.
> To use x2apic mode in the CPU's which support x2APIC
> enhancements or

2009-04-08 09:40:30

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.30-rc1 build failure - drivers/pci/dmar.o


* Han, Weidong <[email protected]> wrote:

> It's found and fixed by Ingo and David yesterday. The patch is
> posted belew. Ingo said he applied it to x86/urgent and will get
> it to Linus.

i missed -rc1 with that (wanted to wait out more build tests - these
Kconfig dependencies are twisted) - will probably send it later
today.

Ingo