OSDN Git Service

printk: remove safe buffers
authorJohn Ogness <john.ogness@linutronix.de>
Thu, 15 Jul 2021 19:33:56 +0000 (21:39 +0206)
committerPetr Mladek <pmladek@suse.com>
Mon, 26 Jul 2021 13:09:34 +0000 (15:09 +0200)
commit93d102f094be9beab28e5afb656c188b16a3793b
treebc1a38f9ecdabf5e262e433633c68ec6568032ef
parent002eb6ad075142e5940122c7fcee71cf1e906e29
printk: remove safe buffers

With @logbuf_lock removed, the high level printk functions for
storing messages are lockless. Messages can be stored from any
context, so there is no need for the NMI and safe buffers anymore.
Remove the NMI and safe buffers.

Although the safe buffers are removed, the NMI and safe context
tracking is still in place. In these contexts, store the message
immediately but still use irq_work to defer the console printing.

Since printk recursion tracking is in place, safe context tracking
for most of printk is not needed. Remove it. Only safe context
tracking relating to the console and console_owner locks is left
in place. This is because the console and console_owner locks are
needed for the actual printing.

Signed-off-by: John Ogness <john.ogness@linutronix.de>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Signed-off-by: Petr Mladek <pmladek@suse.com>
Link: https://lore.kernel.org/r/20210715193359.25946-4-john.ogness@linutronix.de
arch/powerpc/kernel/traps.c
arch/powerpc/kernel/watchdog.c
include/linux/printk.h
kernel/kexec_core.c
kernel/panic.c
kernel/printk/internal.h
kernel/printk/printk.c
kernel/printk/printk_safe.c
lib/nmi_backtrace.c