From: Petr Mladek <pmladek@suse.com>
To: John Ogness <john.ogness@linutronix.de>
Cc: Sergey Senozhatsky <senozhatsky@chromium.org>,
Steven Rostedt <rostedt@goodmis.org>,
Marcos Paulo de Souza <mpdesouza@suse.com>,
Chris Down <chris@chrisdown.name>,
Naveen Kumar Chaudhary <naveen.osdev@gmail.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 04/11] printk: Separate code for adding/updating preferred console metadata
Date: Wed, 15 Jul 2026 17:52:16 +0200 [thread overview]
Message-ID: <alessN1dXUAsv6m4@pathway.suse.cz> (raw)
In-Reply-To: <87o6g9bpwm.fsf@jogness.linutronix.de>
On Tue 2026-07-14 16:41:05, John Ogness wrote:
> On 2026-06-04, Petr Mladek <pmladek@suse.com> wrote:
> > The logic for adding or updating a preferred console is currently
> > duplicated within __add_preferred_console(), making the code difficult
> > to follow and prone to consistency issues.
> >
> > Introduce update_preferred_console() to centralize the initialization
> > and updating of struct preferred_console entries. This refactoring
> > explicitly defines and enforces the following rules:
> >
> > 1. Console names and/or indexes are not set when a console is preferred
> > via devname; these are resolved later during device matching.
> > 2. Console names are only added alongside a valid index.
> > 3. Only matching entries are updated.
> > 4. Console and Braille options are never cleared. They are updated
> > only via the command line.
> > 5. The global 'preferred_dev_console' index and 'console_set_on_cmdline'
> > flag are updated consistently.
> >
> > Additionally, rename braille_set_options() to braille_update_options()
> > to better reflect its conditional behavior.
> >
> > Behavior change:
> >
> > The original code never updated the preferred console options
> > when it was preferred more times, e.g. via the command line
> > and/or some platform specific code, e.g. SPCR or device tree.
> >
> > The new code explicitly allows to update the console options
> > when they are preferred over the command line.
> >
> > It mostly worked even before but only because the command line was
> > processed early enough before handling SPCR, device tree, or other
> > platform specific init code.
>
> As you previously mentioned, this is a recipe for regressions. IMHO the
> real issue is not that the behavior is changed, but rather that there is
> no official ordering for SPCR/DT/command-line across all platforms.
>
> Also, although a later specification can override previous options, it
> cannot clear them.
Good point!
> I am just wondering if the previous behavior should be preserved until
> someone implements a full solution with proper official option ordering
> and override capabilities.
Hmm, this patch was supposed to define some sane rules. For example,
options defined on the command line would be used even when
the same console was first added, e.g. by SPCR code without options.
Or at least it looked ugly to keep the original behavior.
But maybe, it was not that good idea:
+ It is always a bad idea to "hide" behavior changes into
a patch which primary does "just" a code clean up.
+ We need to be careful when adding new rules. And it might
need longer discussion.
I am going to keep the original behavior in v5. And likely even leave
the behavior change for another patchset.
Best Regards,
Petr
next prev parent reply other threads:[~2026-07-15 15:52 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-04 10:14 [PATCH v4 00/11] printk: Clean up preferred console handling Petr Mladek
2026-06-04 10:14 ` [PATCH v4 01/11] printk: Handle pre-enabled consoles in the top-level register_console() Petr Mladek
2026-07-14 13:33 ` John Ogness
2026-07-15 14:43 ` Petr Mladek
2026-06-04 10:14 ` [PATCH v4 02/11] printk: Rename struct console_cmdline to preferred_console Petr Mladek
2026-06-04 10:14 ` [PATCH v4 03/11] printk: Rename preferred_console to preferred_dev_console Petr Mladek
2026-06-04 10:14 ` [PATCH v4 04/11] printk: Separate code for adding/updating preferred console metadata Petr Mladek
2026-07-14 14:35 ` John Ogness
2026-07-15 15:52 ` Petr Mladek [this message]
2026-06-04 10:14 ` [PATCH v4 05/11] printk: Cleanup _braille_(un)register_console() wrappers Petr Mladek
2026-06-04 10:14 ` [PATCH v4 06/11] console/braille: Lock console->setup() call during the registration Petr Mladek
2026-07-15 14:41 ` John Ogness
2026-06-04 10:14 ` [PATCH v4 07/11] printk: Separate code for enabling console Petr Mladek
2026-07-15 16:01 ` John Ogness
2026-06-04 10:14 ` [PATCH v4 08/11] printk: Try to register each console as Braille first Petr Mladek
2026-06-04 10:14 ` [PATCH v4 09/11] printk: Do not set Braille console as preferred_console Petr Mladek
2026-06-04 10:14 ` [PATCH v4 10/11] printk: Modify try_enable_default_console() to return error/success Petr Mladek
2026-06-04 10:14 ` [PATCH v4 11/11] printk: Try enable preferred consoles only when there are any Petr Mladek
2026-07-14 8:42 ` [PATCH v4 00/11] printk: Clean up preferred console handling Petr Mladek
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=alessN1dXUAsv6m4@pathway.suse.cz \
--to=pmladek@suse.com \
--cc=chris@chrisdown.name \
--cc=john.ogness@linutronix.de \
--cc=linux-kernel@vger.kernel.org \
--cc=mpdesouza@suse.com \
--cc=naveen.osdev@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.