ARM: Convert handle_IRQ to use __handle_domain_irq
In order to limit code duplication, convert the architecture specific handle_IRQ to use the generic __handle_domain_irq function. Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Link: https://lkml.kernel.org/r/1409047421-27649-4-git-send-email-marc.zyngier@arm.com Signed-off-by: Jason Cooper <jason@lakedaemon.net>
This commit is contained in:
Родитель
a1ddc74a23
Коммит
a71b092a9c
|
@ -24,6 +24,7 @@ config ARM
|
||||||
select GENERIC_SMP_IDLE_THREAD
|
select GENERIC_SMP_IDLE_THREAD
|
||||||
select GENERIC_STRNCPY_FROM_USER
|
select GENERIC_STRNCPY_FROM_USER
|
||||||
select GENERIC_STRNLEN_USER
|
select GENERIC_STRNLEN_USER
|
||||||
|
select HANDLE_DOMAIN_IRQ
|
||||||
select HARDIRQS_SW_RESEND
|
select HARDIRQS_SW_RESEND
|
||||||
select HAVE_ARCH_AUDITSYSCALL if (AEABI && !OABI_COMPAT)
|
select HAVE_ARCH_AUDITSYSCALL if (AEABI && !OABI_COMPAT)
|
||||||
select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
|
select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
|
||||||
|
|
|
@ -65,24 +65,7 @@ int arch_show_interrupts(struct seq_file *p, int prec)
|
||||||
*/
|
*/
|
||||||
void handle_IRQ(unsigned int irq, struct pt_regs *regs)
|
void handle_IRQ(unsigned int irq, struct pt_regs *regs)
|
||||||
{
|
{
|
||||||
struct pt_regs *old_regs = set_irq_regs(regs);
|
__handle_domain_irq(NULL, irq, false, regs);
|
||||||
|
|
||||||
irq_enter();
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Some hardware gives randomly wrong interrupts. Rather
|
|
||||||
* than crashing, do something sensible.
|
|
||||||
*/
|
|
||||||
if (unlikely(irq >= nr_irqs)) {
|
|
||||||
if (printk_ratelimit())
|
|
||||||
printk(KERN_WARNING "Bad IRQ%u\n", irq);
|
|
||||||
ack_bad_irq(irq);
|
|
||||||
} else {
|
|
||||||
generic_handle_irq(irq);
|
|
||||||
}
|
|
||||||
|
|
||||||
irq_exit();
|
|
||||||
set_irq_regs(old_regs);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Загрузка…
Ссылка в новой задаче