]> git.baikalelectronics.ru Git - kernel.git/commit
powerpc/traps: do not enable irqs in _exception
authorNicholas Piggin <npiggin@gmail.com>
Mon, 4 Oct 2021 14:56:39 +0000 (00:56 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 7 Oct 2021 08:54:54 +0000 (19:54 +1100)
commitc0043c00acb5da2f0a3c53d5b11ef0ff7693c6b5
treeba997893fc31f77efd1a204fe165a63a1be1c19a
parent1b047a129e810d6e9129d8c5821b5ed22f1d8986
powerpc/traps: do not enable irqs in _exception

_exception can be called by machine check handlers when the MCE hits
user code (e.g., pseries and powernv). This will enable local irqs
because, which is a dicey thing to do in NMI or hard irq context.

This seemed to worked out okay because a userspace MCE can basically be
treated like a synchronous interrupt (after async / imprecise MCEs are
filtered out). Since NMI and hard irq handlers have started growing
nmi_enter / irq_enter, and more irq state sanity checks, this has
started to cause problems (or at least trigger warnings).

The Fixes tag to the commit which introduced this rather than try to
work out exactly which commit was the first that could possibly cause a
problem because that may be difficult to prove.

Fixes: 996fb8321f78 ("powerpc: Disable interrupts in 64-bit kernel FP and vector faults")
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20211004145642.1331214-3-npiggin@gmail.com
arch/powerpc/kernel/traps.c