Hi, On Mon, Sep 2, 2024 at 8:26 AM Johan Hovold <johan+linaro@xxxxxxxxxx> wrote: > > Commit 663abb1a7a7f ("tty: serial: qcom_geni_serial: Fix UART hang") > addressed an issue with stalled tx after the console code interrupted > the last bytes of a tx command by reenabling the watermark interrupt if > there is data in write buffer. This can however break software flow > control by re-enabling tx after the user has stopped it. > > Address the original issue by not clearing the CMD_DONE flag after > polling for command completion. This allows the interrupt handler to > start another transfer when the CMD_DONE interrupt has not been disabled > due to flow control. > > Fixes: c4f528795d1a ("tty: serial: msm_geni_serial: Add serial driver support for GENI based QUP") > Fixes: 663abb1a7a7f ("tty: serial: qcom_geni_serial: Fix UART hang") > Cc: stable@xxxxxxxxxxxxxxx # 4.17 > Signed-off-by: Johan Hovold <johan+linaro@xxxxxxxxxx> > --- > drivers/tty/serial/qcom_geni_serial.c | 13 +++---------- > 1 file changed, 3 insertions(+), 10 deletions(-) This seems reasonable. I guess this can end up causing a spurious "done" interrupt to sometimes occur but that looks to be harmless. Reviewed-by: Douglas Anderson <dianders@xxxxxxxxxxxx>