printk: report console names during cut-over
authorKees Cook <keescook@chromium.org>
Tue, 12 Nov 2013 23:08:49 +0000 (15:08 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 13 Nov 2013 03:09:13 +0000 (12:09 +0900)
This reports the names of consoles as they're being disabled to help
identify which is which during cut-over.  Helps answer the question
"which boot console actually got activated?" once the regular console is
running, mostly when debugging boot console failures.

Signed-off-by: Kees Cook <keescook@chromium.org>
Acked-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Joe Perches <joe@perches.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
kernel/printk/printk.c

index b4e8500..555ad2d 100644 (file)
@@ -2358,21 +2358,18 @@ void register_console(struct console *newcon)
         * users know there might be something in the kernel's log buffer that
         * went to the bootconsole (that they do not see on the real console)
         */
+       printk(KERN_INFO "%sconsole [%s%d] enabled\n",
+               (newcon->flags & CON_BOOT) ? "boot" : "" ,
+               newcon->name, newcon->index);
        if (bcon &&
            ((newcon->flags & (CON_CONSDEV | CON_BOOT)) == CON_CONSDEV) &&
            !keep_bootcon) {
-               /* we need to iterate through twice, to make sure we print
-                * everything out, before we unregister the console(s)
+               /* We need to iterate through all boot consoles, to make
+                * sure we print everything out, before we unregister them.
                 */
-               printk(KERN_INFO "console [%s%d] enabled, bootconsole disabled\n",
-                       newcon->name, newcon->index);
                for_each_console(bcon)
                        if (bcon->flags & CON_BOOT)
                                unregister_console(bcon);
-       } else {
-               printk(KERN_INFO "%sconsole [%s%d] enabled\n",
-                       (newcon->flags & CON_BOOT) ? "boot" : "" ,
-                       newcon->name, newcon->index);
        }
 }
 EXPORT_SYMBOL(register_console);
@@ -2382,6 +2379,10 @@ int unregister_console(struct console *console)
         struct console *a, *b;
        int res;
 
+       printk(KERN_INFO "%sconsole [%s%d] disabled\n",
+               (console->flags & CON_BOOT) ? "boot" : "" ,
+               console->name, console->index);
+
        res = _braille_unregister_console(console);
        if (res)
                return res;
@@ -2421,8 +2422,6 @@ static int __init printk_late_init(void)
 
        for_each_console(con) {
                if (!keep_bootcon && con->flags & CON_BOOT) {
-                       printk(KERN_INFO "turn off boot console %s%d\n",
-                               con->name, con->index);
                        unregister_console(con);
                }
        }