1

printk: Rename console_replay_all() and update context

Rename console_replay_all() to console_try_replay_all() to make
clear that the implementation is best effort. Also, the function
should not be called in NMI context as it takes locks, so update
the comment in code.

Fixes: 693f75b91a ("printk: Add function to replay kernel log on consoles")
Fixes: 1b743485e2 ("tty/sysrq: Replay kernel log messages on consoles via sysrq")
Suggested-by: Petr Mladek <pmladek@suse.com>
Signed-off-by: Shimoyashiki Taichi <taichi.shimoyashiki@sony.com>
Signed-off-by: Sreenath Vijayan <sreenath.vijayan@sony.com>
Link: https://lore.kernel.org/r/Zlguq/wU21Z8MqI4@sreenath.vijayan@sony.com
Reviewed-by: Petr Mladek <pmladek@suse.com>
Signed-off-by: Petr Mladek <pmladek@suse.com>
This commit is contained in:
Sreenath Vijayan 2024-05-30 13:15:47 +05:30 committed by Petr Mladek
parent 1613e604df
commit 3d9a0a2533
3 changed files with 6 additions and 6 deletions

View File

@ -452,7 +452,7 @@ static const struct sysrq_key_op sysrq_unrt_op = {
static void sysrq_handle_replay_logs(u8 key) static void sysrq_handle_replay_logs(u8 key)
{ {
console_replay_all(); console_try_replay_all();
} }
static struct sysrq_key_op sysrq_replay_logs_op = { static struct sysrq_key_op sysrq_replay_logs_op = {
.handler = sysrq_handle_replay_logs, .handler = sysrq_handle_replay_logs,

View File

@ -195,7 +195,7 @@ void show_regs_print_info(const char *log_lvl);
extern asmlinkage void dump_stack_lvl(const char *log_lvl) __cold; extern asmlinkage void dump_stack_lvl(const char *log_lvl) __cold;
extern asmlinkage void dump_stack(void) __cold; extern asmlinkage void dump_stack(void) __cold;
void printk_trigger_flush(void); void printk_trigger_flush(void);
void console_replay_all(void); void console_try_replay_all(void);
#else #else
static inline __printf(1, 0) static inline __printf(1, 0)
int vprintk(const char *s, va_list args) int vprintk(const char *s, va_list args)
@ -275,7 +275,7 @@ static inline void dump_stack(void)
static inline void printk_trigger_flush(void) static inline void printk_trigger_flush(void)
{ {
} }
static inline void console_replay_all(void) static inline void console_try_replay_all(void)
{ {
} }
#endif #endif

View File

@ -4314,15 +4314,15 @@ void kmsg_dump_rewind(struct kmsg_dump_iter *iter)
EXPORT_SYMBOL_GPL(kmsg_dump_rewind); EXPORT_SYMBOL_GPL(kmsg_dump_rewind);
/** /**
* console_replay_all - replay kernel log on consoles * console_try_replay_all - try to replay kernel log on consoles
* *
* Try to obtain lock on console subsystem and replay all * Try to obtain lock on console subsystem and replay all
* available records in printk buffer on the consoles. * available records in printk buffer on the consoles.
* Does nothing if lock is not obtained. * Does nothing if lock is not obtained.
* *
* Context: Any context. * Context: Any, except for NMI.
*/ */
void console_replay_all(void) void console_try_replay_all(void)
{ {
if (console_trylock()) { if (console_trylock()) {
__console_rewind_all(); __console_rewind_all();