diff options
author | Jan Beulich <jbeulich@suse.com> | 2012-09-20 09:20:30 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2012-09-20 09:20:30 +0200 |
commit | 051e59b5c4fcb3a41328ff24012d1a99b5912812 (patch) | |
tree | 9eb2c2b993dd375ce79b73baa33b28dbb0b0c308 /xen/arch/x86/irq.c | |
parent | 367f6be33cfd9e6c91410c7d60ce0c0c7c44723f (diff) | |
download | xen-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.c | 3 |
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") ) |