Re: [GIT *] intel-iommu updates for 2.6.30 (second batch)

Ingo Molnar
2009-04-07T05:53:47Z

* Ingo Molnar <mingo@elte.hu> wrote:

>
> * David Woodhouse <dwmw2@infradead.org> wrote:
>
> > On Tue, 2009-04-07 at 07:37 +0200, Ingo Molnar wrote:
> > > I suspect these bits are the ones that broke the upstream build:
> > >
> > > drivers/pci/dmar.c:47: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or
> > > ‘__attribute__’ before ‘dmar_tbl_size’
> > > drivers/pci/dmar.c:62: warning: ‘struct acpi_dmar_device_scope’
> > > declared inside parameter list
> > > drivers/pci/dmar.c:62: warning: its scope is only this definition or
> > > declaration, which is probably not what you want
> >
> > Yeah, <acpi/acpi.h> was being included implicitly for me, but
> > certain configs don't do that. Alexander Beregalov sent a patch
> > for that, which I added to my tree before Linus pulled it.
> >
> > Commit 46f06b72378d3187f0d12f7a60d020676bfbf332 is the fix.
>
> No, that does not fix it - it's still broken with
> v2.6.29-9854-gd508afb. Try the config i sent.

The problem is INTR_REMAP. That brings in DMAR but not ACPI.

The patch below fixes it, but it is only an ugly workaround: we
really dont want 'depends on ACPI' dependencies to spread like that.

ACPI is a hardware discovery mechanism. It might be the only way to
discover these pieces of hardware at the moment, but we should not
tie method of discovery to hardware support. I'd suggest a
dmar_acpi.c splitout of the ACPI bits.

More testing too please - this was really an avoidable bug.

Ingo

---
arch/x86/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux2/arch/x86/Kconfig
===================================================================
--- linux2.orig/arch/x86/Kconfig
+++ linux2/arch/x86/Kconfig
@@ -268,7 +268,7 @@ config SMP_SUPPORT

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