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