Currently, if printk lock (logbuf_lock) is held by other thread during crash, there is a chance of deadlocking the crash on next printk, and blocking a possibly desired kdump.
After sending IPI to all other CPUs, make printk enter in NMI context, as it will use per-cpu buffers to store the message, and avoid locking logbuf_lock. Signed-off-by: Leonardo Bras <leona...@linux.ibm.com> --- arch/powerpc/kexec/crash.c | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/powerpc/kexec/crash.c b/arch/powerpc/kexec/crash.c index d488311efab1..9b73e3991bf4 100644 --- a/arch/powerpc/kexec/crash.c +++ b/arch/powerpc/kexec/crash.c @@ -115,6 +115,7 @@ static void crash_kexec_prepare_cpus(int cpu) crash_send_ipi(crash_ipi_callback); smp_wmb(); + printk_nmi_enter(); again: /* -- 2.25.1