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:
parent
1613e604df
commit
3d9a0a2533
@ -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,
|
||||||
|
@ -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
|
||||||
|
@ -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();
|
||||||
|
Loading…
Reference in New Issue
Block a user