Print the stack trace with KERN_EMERG - it should be always visible. Playing with console_loglevel is a bad idea as there may be more messages printed than wanted. Also the stack trace might be not printed at all if printk() was deferred and console_loglevel was raised back before the trace got flushed.
Cc: Daniel Thompson <daniel.thomp...@linaro.org> Cc: Douglas Anderson <diand...@chromium.org> Cc: Jason Wessel <jason.wes...@windriver.com> Cc: kgdb-bugreport@lists.sourceforge.net Signed-off-by: Dmitry Safonov <d...@arista.com> --- kernel/debug/kdb/kdb_bt.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/kernel/debug/kdb/kdb_bt.c b/kernel/debug/kdb/kdb_bt.c index 7e2379aa0a1e..5ce1fe082a38 100644 --- a/kernel/debug/kdb/kdb_bt.c +++ b/kernel/debug/kdb/kdb_bt.c @@ -21,22 +21,19 @@ static void kdb_show_stack(struct task_struct *p, void *addr) { - int old_lvl = console_loglevel; - console_loglevel = CONSOLE_LOGLEVEL_MOTORMOUTH; kdb_trap_printk++; kdb_set_current_task(p); if (addr) { - show_stack((struct task_struct *)p, addr); + show_stack_loglvl(p, addr, KERN_EMERG); } else if (kdb_current_regs) { #ifdef CONFIG_X86 - show_stack(p, &kdb_current_regs->sp); + show_stack_loglvl(p, &kdb_current_regs->sp, KERN_EMERG); #else - show_stack(p, NULL); + show_stack_loglvl(p, NULL, KERN_EMERG); #endif } else { - show_stack(p, NULL); + show_stack_loglvl(p, NULL, KERN_EMERG); } - console_loglevel = old_lvl; kdb_trap_printk--; } -- 2.23.0 _______________________________________________ Kgdb-bugreport mailing list Kgdb-bugreport@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kgdb-bugreport