]> git.baikalelectronics.ru Git - kernel.git/commit
powerpc/64: Implement soft interrupt replay in C
authorNicholas Piggin <npiggin@gmail.com>
Tue, 25 Feb 2020 17:35:36 +0000 (03:35 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 1 Apr 2020 02:42:13 +0000 (13:42 +1100)
commit6beb49fa1bd7e057abd7aab97c8be934a55003ce
treedd8f9c2c31869a30d2340d623ecb167174322eff
parent62f6d320733d14a6c6bcfce197a1a2fa1bd96a5e
powerpc/64: Implement soft interrupt replay in C

When local_irq_enable() finds a pending soft-masked interrupt, it
"replays" it by setting up registers like the initial interrupt entry,
then calls into the low level handler to set up an interrupt stack
frame and process the interrupt.

This is not necessary, and uses more stack than needed. The high level
interrupt handler can be called directly from C, with just pt_regs set
up on stack. This should be faster and use less stack.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20200225173541.1549955-28-npiggin@gmail.com
arch/powerpc/include/asm/hw_irq.h
arch/powerpc/kernel/exceptions-64e.S
arch/powerpc/kernel/exceptions-64s.S
arch/powerpc/kernel/irq.c