printk/console: Split out code that enables default console
[ Upstream commit ed758b30d541e9bf713cd58612a4414e57dc6d73 ] 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 Stable-dep-of: 801410b26a0e ("serial: Lock console when calling into driver before registration") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
e595c3160a
commit
3a236508ab
1 changed files with 23 additions and 15 deletions
|
@ -2789,7 +2789,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;
|
||||
|
@ -2837,6 +2838,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
|
||||
|
@ -2893,25 +2911,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…
Reference in a new issue