• Nicholas Piggin's avatar
    powerpc/traps: do not enable irqs in _exception · d0afd44c
    Nicholas Piggin authored
    _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: 9f2f79e3 ("powerpc: Disable interrupts in 64-bit kernel FP and vector faults")
    Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20211004145642.1331214-3-npiggin@gmail.com
    d0afd44c
traps.c 59.6 KB