Commit ca4dbc668412d5fe039be3e26e8e717a616d1ca5
Committed by
H. Peter Anvin
1 parent
2b633e3fac
Exists in
master
and in
7 other branches
xen: Remove unnecessary arch specific xen irq functions.
Right now xen's use of the x86 and ia64 handle_irq is just bizarre and very fragile as it is very non-obvious the function exists and is is used by code out in drivers/.... Luckily using handle_irq is completely unnecessary, and we can just use the generic irq apis instead. This still leaves drivers/xen/events.c as a problematic user of the generic irq apis it has "static struct irq_info irq_info[NR_IRQS]" but that can be fixed some other time. Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> LKML-Reference: <4B7CAAD2.10803@kernel.org> Acked-by: Jeremy Fitzhardinge <jeremy@goop.org> Cc: Ian Campbell <Ian.Campbell@citrix.com> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Showing 2 changed files with 6 additions and 6 deletions Side-by-side Diff
arch/ia64/include/asm/xen/events.h
drivers/xen/events.c
... | ... | @@ -649,9 +649,13 @@ |
649 | 649 | int bit_idx = __ffs(pending_bits); |
650 | 650 | int port = (word_idx * BITS_PER_LONG) + bit_idx; |
651 | 651 | int irq = evtchn_to_irq[port]; |
652 | + struct irq_desc *desc; | |
652 | 653 | |
653 | - if (irq != -1) | |
654 | - handle_irq(irq, regs); | |
654 | + if (irq != -1) { | |
655 | + desc = irq_to_desc(irq); | |
656 | + if (desc) | |
657 | + generic_handle_irq_desc(irq, desc); | |
658 | + } | |
655 | 659 | } |
656 | 660 | } |
657 | 661 |