powerpc/irq: Simplify __do_irq()
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Thu, 9 Jun 2022 10:16:42 +0000 (12:16 +0200)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 29 Jun 2022 06:58:31 +0000 (16:58 +1000)
Remove duplicated code by implementing a proper if/else.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/5a3b21311191f1240850db6ab29b19ac7885fe03.1654769775.git.christophe.leroy@csgroup.eu
arch/powerpc/kernel/irq.c

index 56d165c186c7c9011187d042fe188c3e4e4b1f1c..d50a18888bd918958b7b14ee6ba912479c065fe7 100644 (file)
@@ -281,14 +281,11 @@ void __do_IRQ(struct pt_regs *regs)
        irqsp = hardirq_ctx[raw_smp_processor_id()];
        sirqsp = softirq_ctx[raw_smp_processor_id()];
 
-       /* Already there ? */
-       if (unlikely(cursp == irqsp || cursp == sirqsp)) {
+       /* Already there ? If not switch stack and call */
+       if (unlikely(cursp == irqsp || cursp == sirqsp))
                __do_irq(regs, current_stack_pointer);
-               set_irq_regs(old_regs);
-               return;
-       }
-       /* Switch stack and call */
-       call_do_irq(regs, irqsp);
+       else
+               call_do_irq(regs, irqsp);
 
        set_irq_regs(old_regs);
 }