Re: Early printk behaviour

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri 17 Aug 2007 03:49, Gerd Hoffmann pondered:
> Mike Frysinger wrote:
> >> Hmm, sort of, although I didn't think about the case of no real console
> >> replacing the early console.  The intention of the patch is to have a
> >> smooth handover from the boot console to the real console.  And, yes, if
> >> no real console is ever registered the boot console keeps running ...
> > 
> > i think it also occurs in the case where real console != early console
> 
> No.  At least not of the boot console has the CON_BOOT flag set as it
> should.  Last message you'll see on the boot console is the handover
> printk, telling you which real console device prints the following
> messages.  Whenever early and real console go to the physical device or
> not doesn't matter.
> 
> >> So you can either let it running and *not* mark it __init, so it can
> >> keep on going without breaking.  Or you can explicitly unregister your
> >> boot console at some point, maybe using a late_initcall.
> > 
> > wouldnt a common kernel late_initcall() be more appropriate ?  if
> > early console hasnt switched over (for whatever reason), then kill it
> 
> Hmm, yes, should be doable in generic code.  Check whenever the current
> console has CON_BOOT set and if so unregister it.

Something like:

Index: kernel/printk.c
===================================================================
--- kernel/printk.c     (revision 3568)
+++ kernel/printk.c     (working copy)
@@ -1104,6 +1104,22 @@
 }
 EXPORT_SYMBOL(unregister_console);

+int __init disable_boot_consoles(void)
+{
+       struct console *con;
+
+       for (con = console_drivers; con; con = con->next) {
+               if (con->flags & CON_BOOT) {
+                       printk(KERN_INFO "Unregister BootConsole %s%d\n",
+                               con->name, con->index);
+                       unregister_console(con);
+               }
+       }
+       return 0;
+}
+late_initcall(disable_boot_consoles);
+
+
 /**
  * tty_write_message - write a message to a certain tty, not just the console.
  * @tty: the destination tty_struct
-
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/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux