x86, intr-remap: fix ack for interrupt remapping
authorWeidong Han <weidong.han@intel.com>
Fri, 17 Apr 2009 08:42:13 +0000 (16:42 +0800)
committerIngo Molnar <mingo@elte.hu>
Sun, 19 Apr 2009 08:21:33 +0000 (10:21 +0200)
commit5d0ae2db6deac4f15dac4f42f23bc56448fc8d4d
tree6f823dfb3cdf43dcf0f41f4e6b7297daa6742d0f
parent2b2fd87a6ef56ba7647a578e81bb8c8efda166b8
x86, intr-remap: fix ack for interrupt remapping

Shouldn't call ack_apic_edge() in ir_ack_apic_edge(), because
ack_apic_edge() does more than just ack: it also does irq migration
in the non-interrupt-remapping case. But there is no such need for
interrupt-remapping case, as irq migration is done in the process
context.

Similarly, ir_ack_apic_level() shouldn't call ack_apic_level, and
instead should do the local cpu's EOI + directed EOI to the io-apic.

ack_x2APIC_irq() is not neccessary, because ack_APIC_irq() will use MSR
write for x2apic, and uncached write for non-x2apic.

[ Impact: simplify/standardize intr-remap IRQ acking, fix on !x2apic ]

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-3-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/io_apic.c