New console flag: CON_BOOT

CON_BOOT is like early printk in that it allows for output really
early on.  It's better than early printk because it unregisters
automatically when a real console is initialised.  So if you don't get
consoles registering in console_init, there isn't a huge delay between
the boot console unregistering and the real console starting.  This is
the case on PA-RISC where we have serial ports that aren't discovered
until the PCI bus has been walked.

I think all the current early printk users could be converted to this
scheme with a minimal amount of effort.

diff -urpNX dontdiff linus-2.6/include/linux/console.h 
parisc-2.6/include/linux/console.h
--- linus-2.6/include/linux/console.h   2005-03-02 04:35:07.000000000 -0700
+++ parisc-2.6/include/linux/console.h  2005-03-02 04:25:54.000000000 -0700
@@ -84,6 +84,7 @@ void give_up_console(const struct consw 
 #define CON_PRINTBUFFER        (1)
 #define CON_CONSDEV    (2) /* Last on the command line */
 #define CON_ENABLED    (4)
+#define CON_BOOT       (8)
 
 struct console
 {
diff -urpNX dontdiff linus-2.6/kernel/printk.c parisc-2.6/kernel/printk.c
--- linus-2.6/kernel/printk.c   2005-03-02 04:35:10.000000000 -0700
+++ parisc-2.6/kernel/printk.c  2005-03-15 09:20:32.339891098 -0700
@@ -804,6 +804,11 @@ void register_console(struct console * c
        if (!(console->flags & CON_ENABLED))
                return;
 
+       if (console_drivers && (console_drivers->flags & CON_BOOT)) {
+               unregister_console(console_drivers);
+               console->flags &= ~CON_PRINTBUFFER;
+       }
+
        /*
         *      Put this console in the list - keep the
         *      preferred driver at the head of the list.

-- 
"Next the statesmen will invent cheap lies, putting the blame upon 
the nation that is attacked, and every man will be glad of those
conscience-soothing falsities, and will diligently study them, and refuse
to examine any refutations of them; and thus he will by and by convince 
himself that the war is just, and will thank God for the better sleep 
he enjoys after this process of grotesque self-deception." -- Mark Twain
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to