Messages in this thread Patch in this message | | | Date | Wed, 30 Jan 2008 01:11:34 +0100 | From | Jan Kiszka <> | Subject | [PATCH] don't prefer unsuited consoles on registration |
| |
KGDB triggers a (probably so far theoretical) issue of the automatic init console election: If some console happens to be registered first which does not provide a tty binding (!console->device), it prevents that more suited consoles which are registered later on can enter the candidate pool for console_device(). This is observable with KGDB's console which may already be registered (and exploited!) during early debugger connections, that is before any regular console registration.
This patch fixes the issue by postponing the final, automated preferred_console selection until someone with a non-NULL device handler comes around.
Signed-off-by: Jan Kiszka <jan.kiszka@web.de>
--- kernel/printk.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
Index: b/kernel/printk.c =================================================================== --- a/kernel/printk.c +++ b/kernel/printk.c @@ -1126,8 +1126,11 @@ void register_console(struct console *co console->index = 0; if (console->setup == NULL || console->setup(console, NULL) == 0) { - console->flags |= CON_ENABLED | CON_CONSDEV; - preferred_console = 0; + console->flags |= CON_ENABLED; + if (console->device) { + console->flags |= CON_CONSDEV; + preferred_console = 0; + } } }
| |