| From | Andy Lutomirski <> | Date | Tue, 19 May 2020 13:21:52 -0700 | Subject | Re: [patch V6 20/37] x86/irq/64: Provide handle_irq() |
| |
On Fri, May 15, 2020 at 5:10 PM Thomas Gleixner <tglx@linutronix.de> wrote: > > > 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.
Reviewed-by: Andy Lutomirski <luto@kernel.org>
> > Signed-off-by: Thomas Gleixner <tglx@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); > +} >
Would this be nicer if you open-coded desc->handle_irq(desc) in the if branch to make it look less weird.
This also goes away if you make the run_on_irqstack_if_needed() change I suggested.
|