On Tue, Jun 25, 2024 at 08:12:03AM +0300, Tony Lindgren wrote: > On Mon, Jun 24, 2024 at 03:35:39PM +0200, Greg Kroah-Hartman wrote: > > On Fri, Jun 21, 2024 at 04:44:10PM +0200, Petr Mladek wrote: > > > Added Linus into Cc. > > > > > > On Thu 2024-06-20 15:45:25, Tony Lindgren wrote: > > > > Hi, > > > > > > > > Recent changes to add support for DEVNAME:0.0 style consoles caused a > > > > regression with the preferred console order where the last console on > > > > the kernel command line is no longer the preferred console. > > > > > > > > The following four changes fix the issue using Petr's suggestion that > > > > does not involve calling __add_preferred_console() later on again, and > > > > adds the deferred consoles to the console_cmdline[] directly to be > > > > updated when the console is ready. > > > > > > > > We revert the earlier printk related changes, and then add back the > > > > DEVNAME:0.0 functionality based on Petr's code snippet. And we end up > > > > reducing the code quite a bit too this way. > > > > > > > > And we also revert all the unusable serial core console quirk handling, > > > > it does not do anything for the legacy "ttyS" named consoles. And then > > > > we add a minimal serial_base_match_and_update_preferred_console(). > > > > > > > > The reason we want DEVNAME:0.0 style consoles is it helps addressing the > > > > console based on the connected serial port controller device rather than > > > > using the hardcoded ttyS addressing. And that helps with issues related > > > > to the console moving around after togging the HSUART option in the BIOS, > > > > or when new ports are enabled in devicetree and aliases are not updated. > > > > > > > > Tony Lindgren (4): > > > > printk: Revert add_preferred_console_match() related commits > > > > printk: Add match_devname_and_update_preferred_console() > > > > serial: core: Revert unusable console quirk handling > > > > serial: core: Add serial_base_match_and_update_preferred_console() > > > > > > > > drivers/tty/serial/8250/8250_core.c | 5 - > > > > drivers/tty/serial/serial_base.h | 22 +--- > > > > drivers/tty/serial/serial_base_bus.c | 116 +++------------------ > > > > drivers/tty/serial/serial_core.c | 2 +- > > > > include/linux/printk.h | 5 +- > > > > kernel/printk/Makefile | 2 +- > > > > kernel/printk/conopt.c | 146 --------------------------- > > > > kernel/printk/console_cmdline.h | 7 +- > > > > kernel/printk/printk.c | 122 ++++++++++++++++------ > > > > 9 files changed, 112 insertions(+), 315 deletions(-) > > > > delete mode 100644 kernel/printk/conopt.c > > > > > > The patchset looks ready for linux-next. And I have pushed it > > > into printk/linux.git, branch for-6.10-register-console-devname. > > > > > > I am not sure about the mainline. We need to fix the regression in 6.10. > > > The change is not trivial and rc5 is knocking on the doors. > > > > > > Unfortunately, the patchset intermixes reverts and new code. > > > So that it can't be used for simple revert as is. > > > > > > I am quite confident that the new code works as expected. > > > It changes tricky code but the logic of the change is quite > > > straightforward. > > > > > > > > > I see three solutions: > > > > > > 1. Linus could merge the changes directly into rc5. > > > > > > 2. I could send a pull request after it survives few days in > > > linux-next. > > > > > > 3. Or we rework the patchset. And do pure revert for 6.10 and > > > add the feature a clean way for-6.11. > > > > Pure revert for 6.10 might be good, as it's late in the cycle. Let me > > know the git ids and I can do that. > > Here's the list of git ids to revert: > > $ git log --abbrev=12 --pretty=format:"%h (\"%s\")" v6.9..v6.10-rc5 \ > --author="Tony Lindgren" kernel/printk drivers/tty/ Documentation/admin-guide/ > b20172ca6bf4 ("serial: core: Fix ifdef for serial base console functions") > 4547cd76f08a ("serial: 8250: Fix add preferred console for serial8250_isa_init_ports()") > 5c3a766e9f05 ("Documentation: kernel-parameters: Add DEVNAME:0.0 format for serial ports") > a8b04cfe7dad ("serial: 8250: Add preferred console in serial8250_isa_init_ports()") > a0f32e2dd998 ("serial: core: Handle serial console options") > 787a1cabac01 ("serial: core: Add support for DEVNAME:0.0 style naming for kernel console") > b73c9cbe4f1f ("printk: Flag register_console() if console is set on command line") > 8a831c584e6e ("printk: Don't try to parse DEVNAME:0.0 console options") > f03e8c1060f8 ("printk: Save console options for add_preferred_console_match()") All now reverted, thanks! greg k-h