From a15c1a719c06f7aa1c511ba5f8290ebd2f67aaef Mon Sep 17 00:00:00 2001 From: Greg Edwards Date: Thu, 23 Jun 2005 00:09:05 -0700 Subject: [PATCH] --- yaml --- r: 2919 b: refs/heads/master c: ab4af03a4054bd78bcabfb2214c9597201beae35 h: refs/heads/master i: 2917: 5a7689fd19eec4d65e1acaa00e764494cd60a040 2915: d2cafcb3f7fc387fe6c94141993b50db1c6b7f5b 2911: 8c395b86bb6174e8d2395bd535c779692a48bc69 v: v3 --- [refs] | 2 +- trunk/kernel/printk.c | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 12074124ae6d..0c8c2f59b810 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: dfe52244e004f5103478966cd88351feb5c50d79 +refs/heads/master: ab4af03a4054bd78bcabfb2214c9597201beae35 diff --git a/trunk/kernel/printk.c b/trunk/kernel/printk.c index 01b58d7d17ff..3a442bfb8bee 100644 --- a/trunk/kernel/printk.c +++ b/trunk/kernel/printk.c @@ -876,8 +876,10 @@ void register_console(struct console * console) break; console->flags |= CON_ENABLED; console->index = console_cmdline[i].index; - if (i == preferred_console) + if (i == selected_console) { console->flags |= CON_CONSDEV; + preferred_console = selected_console; + } break; } @@ -897,6 +899,8 @@ void register_console(struct console * console) if ((console->flags & CON_CONSDEV) || console_drivers == NULL) { console->next = console_drivers; console_drivers = console; + if (console->next) + console->next->flags &= ~CON_CONSDEV; } else { console->next = console_drivers->next; console_drivers->next = console; @@ -937,10 +941,14 @@ int unregister_console(struct console * console) /* If last console is removed, we re-enable picking the first * one that gets registered. Without that, pmac early boot console * would prevent fbcon from taking over. + * + * If this isn't the last console and it has CON_CONSDEV set, we + * need to set it on the next preferred console. */ if (console_drivers == NULL) preferred_console = selected_console; - + else if (console->flags & CON_CONSDEV) + console_drivers->flags |= CON_CONSDEV; release_console_sem(); return res;