diff options
Diffstat (limited to 'kernel/irq/handle.c')
| -rw-r--r-- | kernel/irq/handle.c | 18 | 
1 files changed, 18 insertions, 0 deletions
| diff --git a/kernel/irq/handle.c b/kernel/irq/handle.c index 221d80c31e94..27182003b879 100644 --- a/kernel/irq/handle.c +++ b/kernel/irq/handle.c @@ -14,6 +14,8 @@  #include <linux/interrupt.h>  #include <linux/kernel_stat.h> +#include <asm/irq_regs.h> +  #include <trace/events/irq.h>  #include "internals.h" @@ -226,4 +228,20 @@ int __init set_handle_irq(void (*handle_irq)(struct pt_regs *))  	handle_arch_irq = handle_irq;  	return 0;  } + +/** + * generic_handle_arch_irq - root irq handler for architectures which do no + *                           entry accounting themselves + * @regs:	Register file coming from the low-level handling code + */ +asmlinkage void noinstr generic_handle_arch_irq(struct pt_regs *regs) +{ +	struct pt_regs *old_regs; + +	irq_enter(); +	old_regs = set_irq_regs(regs); +	handle_arch_irq(regs); +	set_irq_regs(old_regs); +	irq_exit(); +}  #endif |