On Fri, May 15, 2020 at 5:10 PM Thomas Gleixner <[email protected]> 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 <[email protected]>

>
> Signed-off-by: Thomas Gleixner <[email protected]>
>
> 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.

Reply via email to