• Nicholas Piggin's avatar
    powerpc/pseries, ps3: panic flush kernel messages before halting system · 35adacd6
    Nicholas Piggin authored
    Platforms with a panic handler that halts the system can have problems
    getting kernel messages out, because the panic notifiers are called
    before kernel/panic.c does its flushing of printk buffers an console
    etc.
    
    This was attempted to be solved with commit a3b2cb30 ("powerpc: Do
    not call ppc_md.panic in fadump panic notifier"), but that wasn't the
    right approach and caused other problems, and was reverted by commit
    ab9dbf77.
    
    Instead, the powernv shutdown paths have already had a similar
    problem, fixed by taking the message flushing sequence from
    kernel/panic.c. That's a little bit ugly, but while we have the code
    duplicated, it will work for this case as well. So have ppc panic
    handlers do the same flushing before they terminate.
    
    Without this patch, a qemu pseries_le_defconfig guest stops silently
    when issued the nmi command when xmon is off and no crash dumpers
    enabled. Afterwards, an oops is printed by each CPU as expected.
    
    Fixes: ab9dbf77 ("Revert "powerpc: Do not call ppc_md.panic in fadump panic notifier"")
    Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
    Reviewed-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    35adacd6
opal.c 25.2 KB