aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/irq.c
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2012-09-20 09:20:30 +0200
committerJan Beulich <jbeulich@suse.com>2012-09-20 09:20:30 +0200
commit051e59b5c4fcb3a41328ff24012d1a99b5912812 (patch)
tree9eb2c2b993dd375ce79b73baa33b28dbb0b0c308 /xen/arch/x86/irq.c
parent367f6be33cfd9e6c91410c7d60ce0c0c7c44723f (diff)
downloadxen-051e59b5c4fcb3a41328ff24012d1a99b5912812.tar.gz
xen-051e59b5c4fcb3a41328ff24012d1a99b5912812.tar.bz2
xen-051e59b5c4fcb3a41328ff24012d1a99b5912812.zip
x86/IO-APIC: streamline level ack/end handling
Rather than evaluating "ioapic_ack_new" on each invocation, and considering that the two methods really have almost no code in common, split the handlers. While at it, also move ioapic_ack_{new,forced} into .init.data (eliminating the single non-__init reference to the former). Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen/arch/x86/irq.c')
-rw-r--r--xen/arch/x86/irq.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index c87027bba5..db345914c0 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -1495,7 +1495,8 @@ static int pirq_acktype(struct domain *d, int pirq)
* on which they were received. This is because we tickle the LAPIC to EOI.
*/
if ( !strcmp(desc->handler->typename, "IO-APIC-level") )
- return ioapic_ack_new ? ACKTYPE_EOI : ACKTYPE_UNMASK;
+ return desc->handler->ack == irq_complete_move ?
+ ACKTYPE_EOI : ACKTYPE_UNMASK;
/* Legacy PIC interrupts can be acknowledged from any CPU. */
if ( !strcmp(desc->handler->typename, "XT-PIC") )