[PATCH 0/2] serial: Fix problems when serial transfer is happening at suspend time

From: Douglas Anderson
Date: Thu May 23 2024 - 19:22:49 EST



This is a set of two patches that fix problems related to suspending
while a serial transfer is going on. The two patches are independent
from each other and can land in any order. The only thing tying them
together is that I used the same test to reproduce both of them.
Specifically, I could reproduce my problemes by logging in via an
agetty on the debug serial port (which was _not_ used for kernel
console) and running:
cat /var/log/messages
..and then (via an SSH session) forcing a few suspend/resume cycles.

The first patch solves a problem that is probably more major. It was
introduced recently and has even shown up in stable trees.
Suspend/resume testing in ChromeOS test labs are hitting the problem
fixed by this patch. The fix hasn't been tested in labs, but when I
reproduced the problem locally I could see that the fix worked. IMO it
should land ASAP.

The second patch fixes an ancient problem that I only found because I
was trying to reproduce the first problem. Given how long it's been
around it's probably not urgent but it would be nice to get fixed.


Douglas Anderson (2):
serial: port: Don't block system suspend even if bytes are left to
xmit
serial: qcom-geni: Fix qcom_geni_serial_stop_tx_fifo() while xfer

drivers/tty/serial/qcom_geni_serial.c | 45 +++++++++++++++++++++++++--
drivers/tty/serial/serial_port.c | 10 ++++++
2 files changed, 52 insertions(+), 3 deletions(-)

--
2.45.1.288.g0e0cd299f1-goog