x86, intr-remap: fix eoi for interrupt remapping without x2apic
authorWeidong Han <weidong.han@intel.com>
Fri, 10 Apr 2009 09:17:17 +0000 (17:17 +0800)
committerIngo Molnar <mingo@elte.hu>
Fri, 10 Apr 2009 11:12:17 +0000 (13:12 +0200)
commit746cddd37d48a166f170165a0df4bd50fde1ea60
tree39b8d13da613de619de8e54372e72fef67310cb7
parentf20ab9c38fb85b4dde8b4139788ab9e735a35279
x86, intr-remap: fix eoi for interrupt remapping without x2apic

To simplify level irq migration in the presence of interrupt-remapping,
Suresh used a virtual vector (io-apic pin number) to eliminate io-apic
RTE modification. Level triggered interrupt will appear as an edge to
the local apic cpu but still as level to the IO-APIC. So in addition to
do the local apic EOI, it still needs to do IO-APIC directed EOI to clear
the remote IRR bit in the IO-APIC RTE. Pls refer to Suresh's patch for
more details (commit 0280f7c416c652a2fd95d166f52b199ae61122c0).

Now interrupt remapping is decoupled from x2apic, it also needs to do the
directed EOI for apic. Otherwise, apic interrupts won't work correctly.

Signed-off-by: Weidong Han <weidong.han@intel.com>
Cc: iommu@lists.linux-foundation.org
Cc: Weidong Han <weidong.han@intel.com>
Cc: suresh.b.siddha@intel.com
Cc: dwmw2@infradead.org
Cc: allen.m.kay@intel.com
LKML-Reference: <1239355037-22856-1-git-send-email-weidong.han@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/apic/io_apic.c