x86, io-apic: Move the effort of clearing remoteIRR explicitly before migrating the irq
authorMaciej W. Rozycki <macro@linux-mips.org>
Tue, 1 Dec 2009 23:31:15 +0000 (15:31 -0800)
committerIngo Molnar <mingo@elte.hu>
Wed, 2 Dec 2009 09:11:00 +0000 (10:11 +0100)
commitca64c47cecd0321b2e0dcbd7aaff44b68ce20654
tree74db4a6a204648e5f2d4887dbac195c3dab60da0
parent918bc960dc630b1a79c0d2991a81985812ff69f5
x86, io-apic: Move the effort of clearing remoteIRR explicitly before migrating the irq

When the level-triggered interrupt is seen as an edge interrupt,
we try to clear the remoteIRR explicitly (using either an
io-apic eoi register when present or through the idea of
changing trigger mode of the io-apic RTE to edge and then back
to level). But this explicit try also needs to happen before we
try to migrate the irq. Otherwise irq migration attempt will
fail anyhow, as it postpones the irq migration to a later
attempt when it sees the remoteIRR in the io-apic RTE still set.

Signed-off-by: "Maciej W. Rozycki" <macro@linux-mips.org>
Reviewed-by: Suresh Siddha <suresh.b.siddha@intel.com>
Cc: ebiederm@xmission.com
Cc: garyhade@us.ibm.com
LKML-Reference: <20091201233334.975416130@sbs-t61.sc.intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/apic/io_apic.c