From: Marcos Paulo de Souza <mpdesouza@suse.com>
To: Petr Mladek <pmladek@suse.com>, John Ogness <john.ogness@linutronix.de>
Cc: Sergey Senozhatsky <senozhatsky@chromium.org>,
Steven Rostedt <rostedt@goodmis.org>,
Chris Down <chris@chrisdown.name>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 5/9] printk: Separate code for enabling console
Date: Tue, 05 May 2026 14:56:01 -0300 [thread overview]
Message-ID: <2a0aea8414c505058ef290d4530aae48475b11b8.camel@suse.com> (raw)
In-Reply-To: <20260423130015.85175-6-pmladek@suse.com>
On Thu, 2026-04-23 at 15:00 +0200, Petr Mladek wrote:
> There are several code paths which try to enable a newly registered
> console. Move the logic into a separate try_enable_console()
> function.
>
> It simplifies a bit the long register_console() function definition.
>
> Also followup patches are going to add even more code paths. And it
> will
> be easier to use "return" when it does not make sense to try other
> variants.
>
> The patch does not change the existing behavior.
>
> Signed-off-by: Petr Mladek <pmladek@suse.com>
Acked-by: Marcos Paulo de Souza <mpdesouza@suse.com>
> ---
> kernel/printk/printk.c | 64 ++++++++++++++++++++++++----------------
> --
> 1 file changed, 36 insertions(+), 28 deletions(-)
>
> diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
> index 7a3bbb0cb794..2543c810efcb 100644
> --- a/kernel/printk/printk.c
> +++ b/kernel/printk/printk.c
> @@ -4040,6 +4040,41 @@ static void try_enable_default_console(struct
> console *newcon)
> newcon->flags |= CON_CONSDEV;
> }
>
> +#define console_first() \
> + hlist_entry(console_list.first, struct console, node)
> +
> +static int try_enable_console(struct console *newcon)
> +{
> + int err;
> +
> + /*
> + * See if we want to enable this console driver by default.
> + *
> + * Nope when a console is preferred by the command line,
> device
> + * tree, or SPCR.
> + *
> + * The first real console with tty binding (driver) wins.
> More
> + * consoles might get enabled before the right one is found.
> + *
> + * Note that a console with tty binding will have
> CON_CONSDEV
> + * flag set and will be first in the list.
> + */
> + if (preferred_dev_console < 0) {
> + if (hlist_empty(&console_list) || !console_first()-
> >device ||
> + console_first()->flags & CON_BOOT) {
> + try_enable_default_console(newcon);
> + }
> + }
> +
> + /* See if this console matches one we selected on the
> command line */
> + err = try_enable_preferred_console(newcon, true);
> + if (err != -ENOENT)
> + return err;
> +
> + /* If not, try to match against the platform default(s) */
> + return try_enable_preferred_console(newcon, false);
> +}
> +
> /* Return the starting sequence number for a newly registered
> console. */
> static u64 get_init_console_seq(struct console *newcon, bool
> bootcon_registered)
> {
> @@ -4114,9 +4149,6 @@ static u64 get_init_console_seq(struct console
> *newcon, bool bootcon_registered)
> return init_seq;
> }
>
> -#define console_first() \
> - hlist_entry(console_list.first, struct console, node)
> -
> static int unregister_console_locked(struct console *console);
>
> /*
> @@ -4178,31 +4210,7 @@ void register_console(struct console *newcon)
> goto unlock;
> }
>
> - /*
> - * See if we want to enable this console driver by default.
> - *
> - * Nope when a console is preferred by the command line,
> device
> - * tree, or SPCR.
> - *
> - * The first real console with tty binding (driver) wins.
> More
> - * consoles might get enabled before the right one is found.
> - *
> - * Note that a console with tty binding will have
> CON_CONSDEV
> - * flag set and will be first in the list.
> - */
> - if (preferred_dev_console < 0) {
> - if (hlist_empty(&console_list) || !console_first()-
> >device ||
> - console_first()->flags & CON_BOOT) {
> - try_enable_default_console(newcon);
> - }
> - }
> -
> - /* See if this console matches one we selected on the
> command line */
> - err = try_enable_preferred_console(newcon, true);
> -
> - /* If not, try to match against the platform default(s) */
> - if (err == -ENOENT)
> - err = try_enable_preferred_console(newcon, false);
> + err = try_enable_console(newcon);
>
> /* printk() messages are not printed to the Braille console.
> */
> if (err || newcon->flags & CON_BRL) {
next prev parent reply other threads:[~2026-05-05 17:56 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20260423130015.85175-1-pmladek@suse.com>
[not found] ` <20260423130015.85175-4-pmladek@suse.com>
2026-05-05 17:47 ` [PATCH v2 3/9] printk: Separate code for adding/updating preferred console metadata Marcos Paulo de Souza
[not found] ` <20260423130015.85175-6-pmladek@suse.com>
2026-05-05 17:56 ` Marcos Paulo de Souza [this message]
[not found] ` <20260423130015.85175-2-pmladek@suse.com>
2026-05-08 14:22 ` [PATCH v2 1/9] printk: Rename struct console_cmdline to preferred_console John Ogness
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2a0aea8414c505058ef290d4530aae48475b11b8.camel@suse.com \
--to=mpdesouza@suse.com \
--cc=chris@chrisdown.name \
--cc=john.ogness@linutronix.de \
--cc=linux-kernel@vger.kernel.org \
--cc=pmladek@suse.com \
--cc=rostedt@goodmis.org \
--cc=senozhatsky@chromium.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox