mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Chris Down <chris@chrisdown.name>
To: Petr Mladek <pmladek@suse.com>
Cc: John Ogness <john.ogness@linutronix.de>,
	Sergey Senozhatsky <senozhatsky@chromium.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	Marcos Paulo de Souza <mpdesouza@suse.com>,
	Naveen Kumar Chaudhary <naveen.osdev@gmail.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v5 14/16] printk: Do not set Braille console as preferred_console
Date: Thu, 29 Oct 2026 15:19:59 +0800	[thread overview]
Message-ID: <auLznwtHktgqlST1@chrisdown.name> (raw)
In-Reply-To: <20260929120546.328616-15-pmladek@suse.com>

Petr Mladek writes:
>-	if (brl_options)
>+	if (is_new_entry)
>+		INIT_LIST_HEAD(&pc->preferred_dev_node);

is_new_entry is derived from pc->name[0]/pc->devname[0] being empty, and
console_setup() can store an empty name:

    console=,115200 console=tty1

The first one creates an entry with name "" (and links it). The second one 
stops the lookup loop at the same slot, sees it as new again, and 
re-initialises a node which is still linked, followed by list_add(). With 
DEBUG_LIST + BUG_ON_DATA_CORRUPTION:

    list_add corruption. next->prev should be prev (ffffb010209fc0c0), but was ffffb01023cd1fa0. (next=ffffb01023cd1fa0).
    kernel BUG at lib/list_debug.c:29!
    Call trace:
     __list_add_valid_or_report+0xbc/0x1c0 (P)
     add_or_update_preferred_console+0x6fc/0x9c0
     __add_preferred_console+0x11c/0x160
     console_setup+0x2e4/0x348
     obsolete_checksetup+0x148/0x190
     unknown_bootoption+0x150/0x328
     parse_one+0x108/0x480
     parse_args+0x158/0x3d0
     start_kernel+0x134/0x488

"console=,foo:bar" does the same on the first console= when SPCR added an 
entry, since it matches the SPCR slot via the empty devname (see 7/16).

Rejecting empty name/devname in add_or_update_preferred_console() (see my 
comment on 7/16) should fix that.

>-		preferred_dev_console = i;
>+		if (!list_empty(&pc->preferred_dev_node))
>+			list_del_init(&pc->preferred_dev_node);
>+	} else if (!is_braille_console_preferred(pc)) {
>+		if (list_empty(&pc->preferred_dev_node))
>+			list_add(&pc->preferred_dev_node, &preferred_dev_console);
>+		else
>+			list_move(&pc->preferred_dev_node, &preferred_dev_console);

list_del_init() and list_move() are both fine on an initialised self-linked 
node (list_move() passes the DEBUG_LIST checks in __list_del_entry_valid()), so 
the list_empty() checks can go.

With these fixed:

Acked-by: Chris Down <chris@chrisdown.name>

Thanks!

  reply	other threads:[~2026-10-29  7:20 UTC|newest]

Thread overview: 35+ 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-10-29  7:03   ` Chris Down
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-10-27 12:05   ` John Ogness
2026-10-29  7:05   ` Chris Down
2026-09-29 12:05 ` [PATCH v5 05/16] printk: Prefer the console either via name or devname exclusively Petr Mladek
2026-10-27 12:14   ` John Ogness
2026-10-29  7:06   ` Chris Down
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-10-27 18:08   ` John Ogness
2026-10-29  7:07   ` Chris Down
2026-09-29 12:05 ` [PATCH v5 07/16] printk: Ensure consistent name and devname when updating preferred console Petr Mladek
2026-10-29  7:09   ` Chris Down
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-10-29  7:10   ` Chris Down
2026-10-29 16:23   ` John Ogness
2026-09-29 12:05 ` [PATCH v5 09/16] printk: Allow to override options via the command line Petr Mladek
2026-10-29  7:13   ` Chris Down
2026-09-29 12:05 ` [PATCH v5 10/16] printk: Allow to debug misuse of add_or_update_preferred_console() Petr Mladek
2026-10-29  7:13   ` Chris Down
2026-09-29 12:05 ` [PATCH v5 11/16] console/braille: Lock console->setup() call during the registration Petr Mladek
2026-10-29  7:15   ` Chris Down
2026-09-29 12:05 ` [PATCH v5 12/16] printk: Separate code for enabling console Petr Mladek
2026-10-29  7:15   ` Chris Down
2026-09-29 12:05 ` [PATCH v5 13/16] printk: Try to register each console as Braille first Petr Mladek
2026-10-29  7:17   ` Chris Down
2026-09-29 12:05 ` [PATCH v5 14/16] printk: Do not set Braille console as preferred_console Petr Mladek
2026-10-29  7:19   ` Chris Down [this message]
2026-09-29 12:05 ` [PATCH v5 15/16] printk: Modify try_enable_default_console() to return error/success Petr Mladek
2026-10-29  7:20   ` Chris Down
2026-09-29 12:05 ` [PATCH v5 16/16] printk: Try enable preferred consoles only when there are any Petr Mladek
2026-10-29  7:20   ` Chris Down

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=auLznwtHktgqlST1@chrisdown.name \
    --to=chris@chrisdown.name \
    --cc=john.ogness@linutronix.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mpdesouza@suse.com \
    --cc=naveen.osdev@gmail.com \
    --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

all inboxes | Powered by JetHome®