[PATCH 0/4] serial: fix console lifetime bugs on failed bind and removal
From: Karl Mehltretter <hidden>
Date: 2026-07-19 16:08:25
Also in:
imx, linux-serial, lkml
This series fixes serial/tty lifetime bugs found while injecting allocation failures into the UART bind path. The failures were reproduced on QEMU's raspi1ap (amba-pl011) and mcimx6ul-evk (imx) machines. The first three patches fix shared serial/tty error paths: move fallible port allocations before console registration, clear state after failed uart_driver registration, and track whether a live cdev is registered. The final patch fixes the lifetime of the i.MX driver's private console-port table on probe failure and removal. The i.MX probe-failure fix spans patches 1 and 4. Serial core must not return an error while leaving the console registered, and the i.MX driver must clear its table entry before the failed probe frees the port. With all four patches applied, fail-nth sweeps of the console UART bind path completed on both machines without a KASAN report or oops. Every failed bind left the console unregistered, and the i.MX unbind/rebind reproducer also ran cleanly. This follows up on the discussion here: https://lore.kernel.org/r/alyjOGyTd19Obemi@MacBook-Pro-von-Karl (local) Karl Mehltretter (4): serial: core: do fallible allocations before the console can be registered serial: core: clear freed pointers on uart_register_driver() failure tty: don't oops in tty_unregister_device() when no cdev is registered serial: imx: clear imx_uart_ports[] entry on probe failure and removal drivers/tty/serial/imx.c | 4 ++++ drivers/tty/serial/serial_core.c | 33 ++++++++++++++++++------------- drivers/tty/tty_io.c | 6 ++++-- 3 files changed, 27 insertions(+), 16 deletions(-) -- 2.53.0