Re: [RFC/PATCH] printk: Fix preferred console selection with multiple matches

From: Sergey Senozhatsky
Date: Tue Dec 10 2019 - 03:01:59 EST


On (19/12/10 11:57), Benjamin Herrenschmidt wrote:
[..]
> - add_preferred_console is called early to register "uart0". In
> our case that happens from acpi_parse_spcr() on arm64 since the
> "enable_console" argument is true on that architecture. This causes
> "uart0" to become entry 0 of the console_cmdline array.

Hmm, two independent console list configuration sources.

[..]
> +++ b/kernel/printk/printk.c
> @@ -2646,8 +2646,8 @@ void register_console(struct console *newcon)
> if (i == preferred_console) {
> newcon->flags |= CON_CONSDEV;
> has_preferred = true;
> + break;
> }
> - break;
> }
>
> if (!(newcon->flags & CON_ENABLED))

Wouldn't this, basically, mean that we want to match only consoles,
which were in the kernel's console= cmdline? IOW, ignore consoles
that were placed into consoles list via alternative path - ACPI.

Hmm.

The patch may affect setups where alias matching is expected to
happen. E.g.:

console=uartFOO,BAR

Is 8250 the only console that does alias matching?

-ss