Since 6.10-rc1, Qualcomm machines with a serial port can easily lock up hard, for example, when stopping a getty on reboot. This was triggered by the kfifo conversion, which turned an existing bug that caused the driver to print discarded characters after a buffer flush into a hard lockup. This series fixes the regression and a related soft lockup issue that can be triggered on software flow control and on suspend. Doug has posted an alternative series of fixes here that depends on reworking the driver a fair bit here: https://lore.kernel.org/lkml/20240610222515.3023730-1-dianders@xxxxxxxxxxxx/ This rework has a significant impact on performance on some platforms, but fortunately it seems such a rework can be avoided. There are further bugs in the console code (e.g. that can lead to lost characters) that this series does not address, but those can be fixed separately (and I've started working on that). Johan Changes in v2 - restart tx by issuing a transfer command when there is stale data in the fifo - reorder and rename patches - rename cancel tx helper Johan Hovold (3): serial: qcom-geni: fix soft lockup on sw flow control and suspend serial: qcom-geni: fix hard lockup on buffer flush serial: qcom-geni: do not kill the machine on fifo underrun drivers/tty/serial/qcom_geni_serial.c | 51 ++++++++++++++++++++------- 1 file changed, 38 insertions(+), 13 deletions(-) -- 2.44.1