linux/arch/powerpc
Michael Ellerman 1346d00e1b powerpc: Don't select HAVE_IRQ_EXIT_ON_IRQ_STACK
The HAVE_IRQ_EXIT_ON_IRQ_STACK option tells generic code that irq_exit()
is called while still running on the hard irq stack (hardirq_ctx[] in
the powerpc code).

Selecting the option means the generic code will *not* switch to the
softirq stack before running softirqs, because the code is already
running on the (mostly empty) hard irq stack.

But since commit 1b1b6a6f4c ("powerpc: handle irq_enter/irq_exit in
interrupt handler wrappers"), irq_exit() is now called on the regular task
stack, not the hard irq stack.

That's because previously irq_exit() was called in __do_irq() which is
run on the hard irq stack, but now it is called in
interrupt_async_exit_prepare() which is called from do_irq() constructed
by the wrapper macro, which is after the switch back to the task stack.

So drop HAVE_IRQ_EXIT_ON_IRQ_STACK from the Kconfig. This will mean an
extra stack switch when processing some interrupts, but should
significantly reduce the likelihood of stack overflow.

It also means the softirq stack will be used for running softirqs from
other interrupts that don't use the hard irq stack, eg. timer interrupts.

Fixes: 1b1b6a6f4c ("powerpc: handle irq_enter/irq_exit in interrupt handler wrappers")
Cc: stable@vger.kernel.org # v5.12+
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20220525032639.1947280-1-mpe@ellerman.id.au
2022-05-29 10:30:42 +10:00
..
boot powerpc updates for 5.19 2022-05-28 11:27:17 -07:00
configs eth: de4x5: remove support for Generic DECchip & DIGITAL EtherWORKS PCI/EISA 2022-05-23 11:43:51 +01:00
crypto powerpc: fix typos in comments 2022-05-05 22:12:44 +10:00
include powerpc updates for 5.19 2022-05-28 11:27:17 -07:00
kernel powerpc/kasan: Silence KASAN warnings in __get_wchan() 2022-05-29 10:30:42 +10:00
kexec powerpc/kasan: Mark more real-mode code as not to be instrumented 2022-05-29 10:30:42 +10:00
kvm powerpc: Fix all occurences of "the the" 2022-05-22 15:59:43 +10:00
lib powerpc updates for 5.19 2022-05-28 11:27:17 -07:00
math-emu
mm powerpc updates for 5.19 2022-05-28 11:27:17 -07:00
net powerpc/inst: Remove PPC_INST_BL 2022-05-22 15:58:27 +10:00
perf powerpc/perf: Fix the threshold compare group constraint for power9 2022-05-22 15:58:30 +10:00
platforms powerpc/kasan: Mark more real-mode code as not to be instrumented 2022-05-29 10:30:42 +10:00
purgatory
sysdev powerpc/xics: Include missing header 2022-05-24 20:44:30 +10:00
tools powerpc/64: Add UADDR64 relocation support 2022-03-09 21:47:53 +11:00
xmon powerpc: Fix all occurences of "the the" 2022-05-22 15:59:43 +10:00
Kbuild kbuild: use more subdir- for visiting subdirectories while cleaning 2021-10-24 13:49:46 +09:00
Kconfig powerpc: Don't select HAVE_IRQ_EXIT_ON_IRQ_STACK 2022-05-29 10:30:42 +10:00
Kconfig.debug powerpc: Book3S 64-bit outline-only KASAN support 2022-05-22 15:58:29 +10:00
Makefile powerpc updates for 5.19 2022-05-28 11:27:17 -07:00
Makefile.postlink