[PATCH 1/1] powerpc/crash: Use NMI context for printk after crashing other CPUs

Leonardo Bras leonardo at linux.ibm.com
Tue Apr 7 03:40:59 AEST 2020


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 <leonardo at 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



More information about the Linuxppc-dev mailing list