mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-11 16:29:05 +00:00
printk/console: Split out code that enables default console
Put the code enabling a console by default into a separate function called try_enable_default_console(). Rename try_enable_new_console() to try_enable_preferred_console() to make the purpose of the different variants more clear. It is a code refactoring without any functional change. Signed-off-by: Petr Mladek <pmladek@suse.com> Reviewed-by: Sergey Senozhatsky <senozhatsky@chromium.org> Link: https://lore.kernel.org/r/20211122132649.12737-2-pmladek@suse.com
This commit is contained in:
parent
7d5775d49e
commit
ed758b30d5
@ -2861,7 +2861,8 @@ early_param("keep_bootcon", keep_bootcon_setup);
|
||||
* Care need to be taken with consoles that are statically
|
||||
* enabled such as netconsole
|
||||
*/
|
||||
static int try_enable_new_console(struct console *newcon, bool user_specified)
|
||||
static int try_enable_preferred_console(struct console *newcon,
|
||||
bool user_specified)
|
||||
{
|
||||
struct console_cmdline *c;
|
||||
int i, err;
|
||||
@ -2909,6 +2910,23 @@ static int try_enable_new_console(struct console *newcon, bool user_specified)
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
/* Try to enable the console unconditionally */
|
||||
static void try_enable_default_console(struct console *newcon)
|
||||
{
|
||||
if (newcon->index < 0)
|
||||
newcon->index = 0;
|
||||
|
||||
if (newcon->setup && newcon->setup(newcon, NULL) != 0)
|
||||
return;
|
||||
|
||||
newcon->flags |= CON_ENABLED;
|
||||
|
||||
if (newcon->device) {
|
||||
newcon->flags |= CON_CONSDEV;
|
||||
has_preferred_console = true;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* The console driver calls this routine during kernel initialization
|
||||
* to register the console printing procedure with printk() and to
|
||||
@ -2964,25 +2982,15 @@ void register_console(struct console *newcon)
|
||||
* didn't select a console we take the first one
|
||||
* that registers here.
|
||||
*/
|
||||
if (!has_preferred_console) {
|
||||
if (newcon->index < 0)
|
||||
newcon->index = 0;
|
||||
if (newcon->setup == NULL ||
|
||||
newcon->setup(newcon, NULL) == 0) {
|
||||
newcon->flags |= CON_ENABLED;
|
||||
if (newcon->device) {
|
||||
newcon->flags |= CON_CONSDEV;
|
||||
has_preferred_console = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!has_preferred_console)
|
||||
try_enable_default_console(newcon);
|
||||
|
||||
/* See if this console matches one we selected on the command line */
|
||||
err = try_enable_new_console(newcon, true);
|
||||
err = try_enable_preferred_console(newcon, true);
|
||||
|
||||
/* If not, try to match against the platform default(s) */
|
||||
if (err == -ENOENT)
|
||||
err = try_enable_new_console(newcon, false);
|
||||
err = try_enable_preferred_console(newcon, false);
|
||||
|
||||
/* printk() messages are not printed to the Braille console. */
|
||||
if (err || newcon->flags & CON_BRL)
|
||||
|
Loading…
x
Reference in New Issue
Block a user