We don't have consistency:
- we always print panic header
        pr_emerg("Kernel panic - not syncing:")

- but we don't always print panic footer
        pr_emerg("---[ end Kernel panic - not syncing:")

For instance, no panic footer (end panic) message will be
printed when panic_timeout is set - the kernel will either
reboot immediately after console_flush_on_panic() (emergency
restart) or after panic_timeout seconds. Additionally,
panic_print_sys_info() goes before panic footer line, which
doesn't look very right, panic_print_sys_info() is just
additional debugging into.

Let's make it consistent:

        pr_emerg("Kernel panic - not syncing:")
        dump_stack();
        console_flush_on_panic();
        pr_emerg("---[ end Kernel panic - not syncing:")

        panic_print_sys_info();
        /* the rest */
        /* panic_timeout handling */

Signed-off-by: Sergey Senozhatsky <sergey.senozhat...@gmail.com>
---
 kernel/panic.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/kernel/panic.c b/kernel/panic.c
index 40882dad9f70..6482e4b54f0b 100644
--- a/kernel/panic.c
+++ b/kernel/panic.c
@@ -282,6 +282,7 @@ void panic(const char *fmt, ...)
         */
        debug_locks_off();
        console_flush_on_panic(CONSOLE_FLUSH_PENDING);
+       pr_emerg("---[ end Kernel panic - not syncing: %s ]---\n", buf);
 
        panic_print_sys_info();
 
@@ -331,8 +332,6 @@ void panic(const char *fmt, ...)
                disabled_wait(caller);
        }
 #endif
-       pr_emerg("---[ end Kernel panic - not syncing: %s ]---\n", buf);
-
        /* Do not scroll important messages printed above */
        suppress_printk = 1;
        local_irq_enable();
-- 
2.21.0

Reply via email to