Messages in this thread |  | | | Date | Wed, 6 Oct 2004 15:07:05 +0200 (MEST) | | From | Geert Uytterhoeven <> | | Subject | Re: [PATCH] Console: fall back to /dev/null when no console is availlable |
| |
On Wed, 6 Oct 2004, [iso-8859-1] Jörn Engel wrote: > On Wed, 6 October 2004 10:43:52 +0200, Geert Uytterhoeven wrote: > > On Wed, 6 Oct 2004, Willy Tarreau wrote: > > > On Wed, Oct 06, 2004 at 12:58:57AM +0300, Denis Vlasenko wrote: > > > > > + if (open("/dev/null", O_RDWR, 0) == 0) > > > > > + printk(" Falling back to /dev/null.\n"); > > > > > + } > > > > > > > > What will happen if /dev is totally empty? > > > > > > ... Which is the most probable reason causing this trouble. > > I have no idea about the probability, but in the one case I worry > about, a console is explicitly disabled because it is not wanted. > /dev does exist and is populated. > > > Some debug methods use register_console() to get their print routines > > registered. If people forget to say e.g. `console=tty0' afterwards, the debug > > console without the real device cannot be opened through /dev/console, and they > > get a mysterious error. Usually /dev/console _is_ present in the root fs. > > Yes, I thought about doing things at a different level as well. If > there really is no console, shouldn't /dev/console have the same > behavious as /dev/null? > > Point is that above patch is simpler and empiria didn't give me a > reason to worry about anything else.
I'll give you another reason :-)
If I do have multiple active struct consoles registered (e.g. normal tty0 or ttyS0 and a debug console without a real tty), and the /dev/console demux thinks the debug console is the real one (the one opened if you open /dev/console), printk() messages will appear on both active consoles, but /dev/console cannot be opened.
To avoid this problem, the /dev/console demux should walk the list of active consoles until it finds one that can be opened, or fall back to /dev/null if none is found.
Does that sound reasonable?
Gr{oetje,eeting}s, Geert
-- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds |  |