mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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, Petr Mladek <pmladek@suse.com>
Subject: [PATCH v5 09/16] printk: Allow to override options via the command line
Date: Tue, 29 Sep 2026 14:05:39 +0200	[thread overview]
Message-ID: <20260929120546.328616-10-pmladek@suse.com> (raw)
In-Reply-To: <20260929120546.328616-1-pmladek@suse.com>

Consoles can be preferred either via the console= command line parameter
or by some platform specific code, e.g. SPCR, device tree.

Historically, the preferred console options are stored only by the first
caller who prefers the particular console. The ordering is:

  1. acpi_parse_spcr() is called via setup_arch(). Also some platforms,
     for example, s390, powerpc, x86 Xen, explicitly call
     add_preferred_console() before or in setup_arch().

  2. console= command line parameter adds the preferred consoles via
     console_setup().

  3. The device tree is read in setup_arch(), see unflatten_device_tree().
     But the preferred console entries are added later when probing
     particular devices in do_initcalls(), see of_console_check().

It means that users could override console options via the command line
only for entries defined via the device tree but not for entries added
via SPCR or another platform-specific code.

I looks like a bug. It should always be possible to override any
platform-specific defaults via the command line. Also it is usual
that the last variant wins.

Be conservative when Braille console is wanted and prefer the Braille
variant.

The change might theoretically break setups where users passed wrong
console options and they used to be ignored. But the fix seems to
be worth the risk.

Signed-off-by: Petr Mladek <pmladek@suse.com>
---
 kernel/printk/printk.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index 4670787195d1..b458a920ce5a 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -2563,6 +2563,9 @@ asmlinkage __visible void early_printk(const char *fmt, ...)
  *
  *   2. Only matching entries can be updated.
  *
+ *   3. Allow to override @options via the command line. Last one wins
+ *	except that the Braille variant is preferred.
+ *
  *  [*] A valid @name and @idx will get assigned for a devname later when
  *	@devname matches during the device initialization, see
  *	match_devname_and_update_preferred_console().
@@ -2632,10 +2635,11 @@ static int add_or_update_preferred_console(unsigned int i,
 	}
 
 	/*
-	 * Historically, the preferred options are stored only by the first
-	 * caller who prefers the particular console.
+	 * Allow to override options via the command line but always
+	 * prefer the Braille variant.
 	 */
-	if (is_new_entry) {
+	if (is_new_entry || brl_options ||
+	    (user_specified && !is_braille_console_preferred(pc))) {
 		pc->options = options;
 		braille_set_options(pc, brl_options);
 	}
-- 
2.55.0


  parent reply	other threads:[~2026-09-29 12:07 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-29 12:05 [PATCH v5 00/16] printk: Clean up preferred console handling Petr Mladek
2026-09-29 12:05 ` [PATCH v5 01/16] printk: Rename struct console_cmdline to preferred_console Petr Mladek
2026-09-29 12:05 ` [PATCH v5 02/16] printk: Rename preferred_console to preferred_dev_console Petr Mladek
2026-09-29 12:05 ` [PATCH v5 03/16] printk: Cleanup _braille_(un)register_console() wrappers Petr Mladek
2026-09-29 12:05 ` [PATCH v5 04/16] printk: Separate code for adding/updating preferred console metadata Petr Mladek
2026-09-29 12:05 ` [PATCH v5 05/16] printk: Prefer the console either via name or devname exclusively Petr Mladek
2026-09-29 12:05 ` [PATCH v5 06/16] printk: Check that index is not defined when a console is preferred via devname Petr Mladek
2026-09-29 12:05 ` [PATCH v5 07/16] printk: Ensure consistent name and devname when updating preferred console Petr Mladek
2026-09-29 12:05 ` [PATCH v5 08/16] printk: Do not quietly ignore adding entry for a preferred console when there is no space Petr Mladek
2026-09-29 12:05 ` Petr Mladek [this message]
2026-09-29 12:05 ` [PATCH v5 10/16] printk: Allow to debug misuse of add_or_update_preferred_console() Petr Mladek
2026-09-29 12:05 ` [PATCH v5 11/16] console/braille: Lock console->setup() call during the registration Petr Mladek
2026-09-29 12:05 ` [PATCH v5 12/16] printk: Separate code for enabling console Petr Mladek
2026-09-29 12:05 ` [PATCH v5 13/16] printk: Try to register each console as Braille first Petr Mladek
2026-09-29 12:05 ` [PATCH v5 14/16] printk: Do not set Braille console as preferred_console Petr Mladek
2026-09-29 12:05 ` [PATCH v5 15/16] printk: Modify try_enable_default_console() to return error/success Petr Mladek
2026-09-29 12:05 ` [PATCH v5 16/16] printk: Try enable preferred consoles only when there are any 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=20260929120546.328616-10-pmladek@suse.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®