kmsg: make sure all messages reach a newly registered boot console
authorKay Sievers <kay@vrfy.org>
Fri, 6 Jul 2012 16:50:09 +0000 (09:50 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 6 Jul 2012 16:50:09 +0000 (09:50 -0700)
We suppress printing kmsg records to the console, which are already printed
immediately while we have received their fragments.

Newly registered boot consoles print the entire kmsg buffer during
registration. Clear the console-suppress flag after we skipped the record
during its first storage, so any later print will see these records as usual.

Signed-off-by: Kay Sievers <kay@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
kernel/printk.c

index be9a82b2f0b35c973f34a4a51fc29003b5ce32bf..f02f1f5ddc30c72d501e41c49550028015d0a5eb 100644 (file)
@@ -1953,6 +1953,12 @@ skip:
                         */
                        console_idx = log_next(console_idx);
                        console_seq++;
+                       /*
+                        * We will get here again when we register a new
+                        * CON_PRINTBUFFER console. Clear the flag so we
+                        * will properly dump everything later.
+                        */
+                       msg->flags &= ~LOG_NOCONS;
                        goto skip;
                }