To consolidate the interrupt entry/exit code vs. the other exceptions provide handle_irq() (similar to 32bit) to move the interrupt stack switching to C code. That allows to consolidate the entry exit handling by reusing the idtentry machinery both in ASM and C.
Signed-off-by: Thomas Gleixner <t...@linutronix.de> diff --git a/arch/x86/kernel/irq_64.c b/arch/x86/kernel/irq_64.c index 62cff52e03c5..6087164e581c 100644 --- a/arch/x86/kernel/irq_64.c +++ b/arch/x86/kernel/irq_64.c @@ -79,3 +79,11 @@ void do_softirq_own_stack(void) else run_on_irqstack(__do_softirq, NULL); } + +void handle_irq(struct irq_desc *desc, struct pt_regs *regs) +{ + if (!irq_needs_irq_stack(regs)) + generic_handle_irq_desc(desc); + else + run_on_irqstack(desc->handle_irq, desc); +}