diff options
author | Suresh Siddha <suresh.b.siddha@intel.com> | 2009-03-16 20:04:55 -0400 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2009-03-17 18:38:59 -0400 |
commit | 9d783ba042771284fb4ee5013c3d94220755ae7f (patch) | |
tree | 102ec9f89d363589108ae35e4b38c12fc6e2765c /arch/x86/kernel/apic/io_apic.c | |
parent | 0ac2491f57af5644f88383d28809760902d6f4d7 (diff) |
x86, x2apic: enable fault handling for intr-remapping
Impact: interface augmentation (not yet used)
Enable fault handling flow for intr-remapping aswell. Fault handling
code now shared by both dma-remapping and intr-remapping.
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'arch/x86/kernel/apic/io_apic.c')
-rw-r--r-- | arch/x86/kernel/apic/io_apic.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c index 00e6071cefc4..b18a7734d689 100644 --- a/arch/x86/kernel/apic/io_apic.c +++ b/arch/x86/kernel/apic/io_apic.c | |||
@@ -3294,7 +3294,12 @@ static int msi_compose_msg(struct pci_dev *pdev, unsigned int irq, struct msi_ms | |||
3294 | } else | 3294 | } else |
3295 | #endif | 3295 | #endif |
3296 | { | 3296 | { |
3297 | msg->address_hi = MSI_ADDR_BASE_HI; | 3297 | if (x2apic_enabled()) |
3298 | msg->address_hi = MSI_ADDR_BASE_HI | | ||
3299 | MSI_ADDR_EXT_DEST_ID(dest); | ||
3300 | else | ||
3301 | msg->address_hi = MSI_ADDR_BASE_HI; | ||
3302 | |||
3298 | msg->address_lo = | 3303 | msg->address_lo = |
3299 | MSI_ADDR_BASE_LO | | 3304 | MSI_ADDR_BASE_LO | |
3300 | ((apic->irq_dest_mode == 0) ? | 3305 | ((apic->irq_dest_mode == 0) ? |
@@ -3528,7 +3533,7 @@ void arch_teardown_msi_irq(unsigned int irq) | |||
3528 | destroy_irq(irq); | 3533 | destroy_irq(irq); |
3529 | } | 3534 | } |
3530 | 3535 | ||
3531 | #ifdef CONFIG_DMAR | 3536 | #if defined (CONFIG_DMAR) || defined (CONFIG_INTR_REMAP) |
3532 | #ifdef CONFIG_SMP | 3537 | #ifdef CONFIG_SMP |
3533 | static void dmar_msi_set_affinity(unsigned int irq, const struct cpumask *mask) | 3538 | static void dmar_msi_set_affinity(unsigned int irq, const struct cpumask *mask) |
3534 | { | 3539 | { |