]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
serial: zs: Fix bootconsole handover lockup
authorMaciej W. Rozycki <macro@orcam.me.uk>
Wed, 6 May 2026 22:42:39 +0000 (23:42 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 22 May 2026 09:52:34 +0000 (11:52 +0200)
commit6c05cf72e13314ce9b770b5951695dc5a2152920
tree17af894c594d4bd787702434cbb1c42db1345c2d
parent7f127b2208e5e2b817243cad41fe4211a6d5a7a3
serial: zs: Fix bootconsole handover lockup

Calling zs_reset() in the course of setting up the serial device causes
line parameters to be reset and the transmitter disabled.  We've been
lucky in that no message is usually produced to the kernel log between
this call and the later call to uart_set_options() in the course of
console setup done by zs_serial_console_init(), or the system would hang
as the console output handler in the firmware tried to access a port the
transmitter of which has been disabled and line parameters messed up.

This will change with the next change to the driver, so fix zs_reset()
such that line parameters are set for 9600n8 console operation as with
the system firmware and the transmitter re-enabled after reset.  This
also means zs_pm() serves no purpose anymore, so drop it.

Fixes: 8b4a40809e53 ("zs: move to the serial subsystem")
Signed-off-by: Maciej W. Rozycki <macro@orcam.me.uk>
Cc: stable@vger.kernel.org # v2.6.23+
Link: https://patch.msgid.link/alpine.DEB.2.21.2605062308040.46195@angie.orcam.me.uk
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/zs.c