diff options
author | Nicholas Piggin <npiggin@gmail.com> | 2018-04-25 07:17:59 +0200 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2018-07-24 14:03:14 +0200 |
commit | 5b73151fff63fb019db8171cb81c6c978533844b (patch) | |
tree | 61c17b513c864371636878b3d47aede38661632c /arch/powerpc/kernel/watchdog.c | |
parent | powerpc/64s: make PACA_IRQ_HARD_DIS track MSR[EE] closely (diff) | |
download | linux-5b73151fff63fb019db8171cb81c6c978533844b.tar.xz linux-5b73151fff63fb019db8171cb81c6c978533844b.zip |
powerpc: NMI IPI make NMI IPIs fully sychronous
There is an asynchronous aspect to smp_send_nmi_ipi. The caller waits
for all CPUs to call in to the handler, but it does not wait for
completion of the handler. This is a needless complication, so remove
it and always wait synchronously.
The synchronous wait allows the caller to easily time out and clear
the wait for completion (zero nmi_ipi_busy_count) in the case of badly
behaved handlers. This would have prevented the recent smp_send_stop
NMI IPI bug from causing the system to hang.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to '')
-rw-r--r-- | arch/powerpc/kernel/watchdog.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/watchdog.c b/arch/powerpc/kernel/watchdog.c index 1d82274f7e9f..3c6ab22a0c4e 100644 --- a/arch/powerpc/kernel/watchdog.c +++ b/arch/powerpc/kernel/watchdog.c @@ -174,7 +174,6 @@ static void watchdog_smp_panic(int cpu, u64 tb) continue; smp_send_nmi_ipi(c, wd_lockup_ipi, 1000000); } - smp_flush_nmi_ipi(1000000); } /* Take the stuck CPUs out of the watch group */ |