|
@@ -268,7 +268,6 @@ static struct console *exclusive_console;
|
|
|
static struct console_cmdline console_cmdline[MAX_CMDLINECONSOLES];
|
|
|
|
|
|
static int selected_console = -1;
|
|
|
-static int preferred_console = -1;
|
|
|
int console_set_on_cmdline;
|
|
|
EXPORT_SYMBOL(console_set_on_cmdline);
|
|
|
|
|
@@ -2411,6 +2410,7 @@ void register_console(struct console *newcon)
|
|
|
unsigned long flags;
|
|
|
struct console *bcon = NULL;
|
|
|
struct console_cmdline *c;
|
|
|
+ static bool has_preferred;
|
|
|
|
|
|
if (console_drivers)
|
|
|
for_each_console(bcon)
|
|
@@ -2437,15 +2437,15 @@ void register_console(struct console *newcon)
|
|
|
if (console_drivers && console_drivers->flags & CON_BOOT)
|
|
|
bcon = console_drivers;
|
|
|
|
|
|
- if (preferred_console < 0 || bcon || !console_drivers)
|
|
|
- preferred_console = selected_console;
|
|
|
+ if (!has_preferred || bcon || !console_drivers)
|
|
|
+ has_preferred = selected_console >= 0;
|
|
|
|
|
|
/*
|
|
|
* See if we want to use this console driver. If we
|
|
|
* didn't select a console we take the first one
|
|
|
* that registers here.
|
|
|
*/
|
|
|
- if (preferred_console < 0) {
|
|
|
+ if (!has_preferred) {
|
|
|
if (newcon->index < 0)
|
|
|
newcon->index = 0;
|
|
|
if (newcon->setup == NULL ||
|
|
@@ -2453,7 +2453,7 @@ void register_console(struct console *newcon)
|
|
|
newcon->flags |= CON_ENABLED;
|
|
|
if (newcon->device) {
|
|
|
newcon->flags |= CON_CONSDEV;
|
|
|
- preferred_console = 0;
|
|
|
+ has_preferred = true;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -2488,7 +2488,7 @@ void register_console(struct console *newcon)
|
|
|
newcon->flags |= CON_ENABLED;
|
|
|
if (i == selected_console) {
|
|
|
newcon->flags |= CON_CONSDEV;
|
|
|
- preferred_console = selected_console;
|
|
|
+ has_preferred = true;
|
|
|
}
|
|
|
break;
|
|
|
}
|