powerpc/watchdog: Do not panic from locked CPU's IPI handler
authorNicholas Piggin <npiggin@gmail.com>
Fri, 29 Sep 2017 03:29:37 +0000 (13:29 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 4 Oct 2017 00:25:40 +0000 (11:25 +1100)
The SMP watchdog will detect locked CPUs and IPI them to print a
backtrace and registers. If panic on hard lockup is enabled, do not
panic from this handler, because that can cause recursion into the IPI
layer during the panic.

The caller already panics in this case.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kernel/watchdog.c

index 2f6eadd9408d9490b171ca20f937c1af79096acd..532a1adbe89bb0e3a6604e83241e9a4f2492030f 100644 (file)
@@ -97,8 +97,7 @@ static void wd_lockup_ipi(struct pt_regs *regs)
        else
                dump_stack();
 
-       if (hardlockup_panic)
-               nmi_panic(regs, "Hard LOCKUP");
+       /* Do not panic from here because that can recurse into NMI IPI layer */
 }
 
 static void set_cpumask_stuck(const struct cpumask *cpumask, u64 tb)