From: Johan Hovold <johan+linaro@kernel.org>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jiri Slaby <jirislaby@kernel.org>,
Bjorn Andersson <andersson@kernel.org>,
Konrad Dybcio <konradybcio@kernel.org>,
Douglas Anderson <dianders@chromium.org>,
Mukesh Kumar Savaliya <quic_msavaliy@quicinc.com>,
linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-serial@vger.kernel.org,
Johan Hovold <johan+linaro@kernel.org>,
stable@vger.kernel.org,
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Subject: [PATCH v3 3/9] serial: qcom-geni: fix shutdown race
Date: Wed, 9 Oct 2024 16:51:04 +0200 [thread overview]
Message-ID: <20241009145110.16847-4-johan+linaro@kernel.org> (raw)
In-Reply-To: <20241009145110.16847-1-johan+linaro@kernel.org>
A commit adding back the stopping of tx on port shutdown failed to add
back the locking which had also been removed by commit e83766334f96
("tty: serial: qcom_geni_serial: No need to stop tx/rx on UART
shutdown").
Holding the port lock is needed to serialise against the console code,
which may update the interrupt enable register and access the port
state.
Fixes: d8aca2f96813 ("tty: serial: qcom-geni-serial: stop operations in progress at shutdown")
Fixes: 947cc4ecc06c ("serial: qcom-geni: fix soft lockup on sw flow control and suspend")
Cc: stable@vger.kernel.org # 6.3
Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
---
drivers/tty/serial/qcom_geni_serial.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/tty/serial/qcom_geni_serial.c b/drivers/tty/serial/qcom_geni_serial.c
index 2e4a5361f137..87cd974b76bf 100644
--- a/drivers/tty/serial/qcom_geni_serial.c
+++ b/drivers/tty/serial/qcom_geni_serial.c
@@ -1114,10 +1114,12 @@ static void qcom_geni_serial_shutdown(struct uart_port *uport)
{
disable_irq(uport->irq);
+ uart_port_lock_irq(uport);
qcom_geni_serial_stop_tx(uport);
qcom_geni_serial_stop_rx(uport);
qcom_geni_serial_cancel_tx_cmd(uport);
+ uart_port_unlock_irq(uport);
}
static void qcom_geni_serial_flush_buffer(struct uart_port *uport)
--
2.45.2
next prev parent reply other threads:[~2024-10-09 14:51 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-09 14:51 [PATCH v3 0/9] serial: qcom-geni: fix receiver enable Johan Hovold
2024-10-09 14:51 ` [PATCH v3 1/9] serial: qcom-geni: fix polled console initialisation Johan Hovold
2024-10-10 22:36 ` Doug Anderson
2024-10-09 14:51 ` [PATCH v3 2/9] serial: qcom-geni: revert broken hibernation support Johan Hovold
2024-10-09 14:51 ` Johan Hovold [this message]
2024-10-10 22:36 ` [PATCH v3 3/9] serial: qcom-geni: fix shutdown race Doug Anderson
2024-10-11 6:54 ` Johan Hovold
2024-10-09 14:51 ` [PATCH v3 4/9] serial: qcom-geni: fix dma rx cancellation Johan Hovold
2024-10-09 14:51 ` [PATCH v3 5/9] serial: qcom-geni: fix receiver enable Johan Hovold
2024-10-10 22:36 ` Doug Anderson
2024-10-09 14:51 ` [PATCH v3 6/9] serial: qcom-geni: fix rx cancel dma status bit Johan Hovold
2024-10-09 14:51 ` [PATCH v3 7/9] serial: qcom-geni: drop flip buffer WARN() Johan Hovold
2024-10-09 14:51 ` [PATCH v3 8/9] serial: qcom-geni: drop unused receive parameter Johan Hovold
2024-10-09 14:51 ` [PATCH v3 9/9] serial: qcom-geni: rename suspend functions Johan Hovold
2024-10-10 22:36 ` Doug Anderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241009145110.16847-4-johan+linaro@kernel.org \
--to=johan+linaro@kernel.org \
--cc=andersson@kernel.org \
--cc=bartosz.golaszewski@linaro.org \
--cc=dianders@chromium.org \
--cc=gregkh@linuxfoundation.org \
--cc=jirislaby@kernel.org \
--cc=konradybcio@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=quic_msavaliy@quicinc.com \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.