x86, intr-remap: enable interrupt remapping early
authorWeidong Han <weidong.han@intel.com>
Fri, 17 Apr 2009 08:42:14 +0000 (16:42 +0800)
committerIngo Molnar <mingo@elte.hu>
Sun, 19 Apr 2009 08:21:43 +0000 (10:21 +0200)
commit937582382c71b75b29fbb92615629494e1a05ac0
treee73af8d10d388fcc78d19534611db66233907a9e
parent5d0ae2db6deac4f15dac4f42f23bc56448fc8d4d
x86, intr-remap: enable interrupt remapping early

Currently, when x2apic is not enabled, interrupt remapping
will be enabled in init_dmars(), where it is too late to remap
ioapic interrupts, that is, ioapic interrupts are really in
compatibility mode, not remappable mode.

This patch always enables interrupt remapping before ioapic
setup, it guarantees all interrupts will be remapped when
interrupt remapping is enabled. Thus it doesn't need to set
the compatibility interrupt bit.

[ Impact: refactor intr-remap init sequence, enable fuller remap mode ]

Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Weidong Han <weidong.han@intel.com>
Acked-by: David Woodhouse <David.Woodhouse@intel.com>
Cc: iommu@lists.linux-foundation.org
Cc: allen.m.kay@intel.com
Cc: fenghua.yu@intel.com
LKML-Reference: <1239957736-6161-4-git-send-email-weidong.han@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/include/asm/apic.h
arch/x86/kernel/apic/apic.c
drivers/pci/intel-iommu.c
drivers/pci/intr_remapping.c
include/linux/dmar.h