]> git.baikalelectronics.ru Git - kernel.git/commit
printk: restore flushing of NMI buffers on remote CPUs after NMI backtraces
authorNicholas Piggin <npiggin@gmail.com>
Sun, 7 Nov 2021 04:51:16 +0000 (14:51 +1000)
committerPetr Mladek <pmladek@suse.com>
Wed, 10 Nov 2021 15:12:00 +0000 (16:12 +0100)
commita62d7739d577a9c4f989169279e7d0f2bb3e2f8c
treef0241bc19c8cc4106ac4d2dff236cd58528ef0e4
parenta5f0d1f0175062493024bffc5be8de03b078288d
printk: restore flushing of NMI buffers on remote CPUs after NMI backtraces

printk from NMI context relies on irq work being raised on the local CPU
to print to console. This can be a problem if the NMI was raised by a
lockup detector to print lockup stack and regs, because the CPU may not
enable irqs (because it is locked up).

Introduce printk_trigger_flush() that can be called another CPU to try
to get those messages to the console, call that where printk_safe_flush
was previously called.

Fixes: faa7ffa83915 ("printk: remove safe buffers")
Cc: stable@vger.kernel.org # 5.15
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Reviewed-by: John Ogness <john.ogness@linutronix.de>
Signed-off-by: Petr Mladek <pmladek@suse.com>
Link: https://lore.kernel.org/r/20211107045116.1754411-1-npiggin@gmail.com
arch/powerpc/kernel/watchdog.c
include/linux/printk.h
kernel/printk/printk.c
lib/nmi_backtrace.c