Re: [patch V6 20/37] x86/irq/64: Provide handle_irq()

From: Andy Lutomirski
Date: Tue May 19 2020 - 16:22:08 EST


On Fri, May 15, 2020 at 5:10 PM Thomas Gleixner <tglx@xxxxxxxxxxxxx> 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@xxxxxxxxxx>

>
> Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
>
> 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.