From: "Alexey Klimov" <alexey.klimov@linaro.org>
To: "Praveen Talari" <quic_ptalari@quicinc.com>,
"Krzysztof Kozlowski" <krzk@kernel.org>
Cc: "Bjorn Andersson" <andersson@kernel.org>,
"Konrad Dybcio" <konradybcio@kernel.org>,
<linux-arm-msm@vger.kernel.org>, <linux-serial@vger.kernel.org>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
<linux-kernel@vger.kernel.org>,
<dmitry.baryshkov@oss.qualcomm.com>, <psodagud@quicinc.com>,
<djaggi@quicinc.com>, <quic_msavaliy@quicinc.com>,
<quic_vtanuku@quicinc.com>, <quic_arandive@quicinc.com>,
<quic_cchiluve@quicinc.com>, <quic_shazhuss@quicinc.com>,
"Jiri Slaby" <jirislaby@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
<devicetree@vger.kernel.org>, <bryan.odonoghue@linaro.org>,
<neil.armstrong@linaro.org>, <srini@kernel.org>
Subject: Re: [PATCH v7 7/8] serial: qcom-geni: Enable PM runtime for serial driver
Date: Tue, 26 Aug 2025 20:54:38 +0100 [thread overview]
Message-ID: <DCCMFVC0DW1I.GXZVG2BQEFX7@linaro.org> (raw)
In-Reply-To: <5ae730f4-5337-49f8-8bec-8605a2495f37@quicinc.com>
On Tue Aug 26, 2025 at 11:29 AM BST, Praveen Talari wrote:
> Hi Alexey/Krzysztof,
>
>
> On 8/26/2025 3:36 PM, Krzysztof Kozlowski wrote:
>> On 26/08/2025 11:37, Alexey Klimov wrote:
>>> On Tue Aug 26, 2025 at 10:21 AM BST, Krzysztof Kozlowski wrote:
>>>> On 26/08/2025 11:18, Alexey Klimov wrote:
>>>>>>> May i know what is testcase which you are running on target?
>>>>>>
>>>>>> Boot the board?
>>>>>>
>>>>>>> what is target?
>>>>>>
>>>>>> It is written in original report. Did you even read it?
>>>>>>
>>>>>>> Which usecase is this issue occurring in?
>>>>>>
>>>>>> Boot?
>>>>>
>>>>> FWIW, what said above by Krzysztof is correct, there is no usecase, just booting the board.
>>>>>
>>>> 12 days and nothing improved, right? if this was not dropped now,
>>>> Alexey, can you send a revert? Author clearly approches stability with a
>>>> very relaxed way and is just happy that patch was thrown over the wall
>>>> and job is done.
>>>>
>>>>
>>>> If you do not want to send revert, let me know, I will do it.
>>>
>>> I am okay with sending revert, just trying to see if there is any interest
>>> in fixing this.
>>
>> Any interest should have happened after 1 day of reporting linux-next
>> breakage. It has been like what? 12 days?
>>
>> That's typical throw the patch over the wall. Revert.
>
> Really sorry for the delay.
>
> I forgot to mention earlier that I’ve been actively investigating this
> issue across different platform SoCs. I was able to reproduce the
> problem on the SC7280.
>
> Here’s a summary of the observed behavior:
>
> The issue appears to originate from the qcom_geni_serial driver during
> device runtime resume. It results in a blocked IRQ thread, which in turn
> causes system instability.
>
> The call trace suggests a deadlock scenario where the IRQ
> thread—responsible for handling wake-up events—becomes unresponsive
> while interacting with the pinctrl subsystem.
>
> Specifically, the msm_pinmux_set_mux function attempts to invoke
> disable_irq, which is problematic when called from an IRQ thread context.
> Since the IRQ itself is a wake-up source, this leads to contention or a
> self-deadlock situation.
>
> I have verified below diff and about to post it
Was the original patch, that introduced the regression, also created by AI tools?
Just trying to understand how we ended up with untested commit in -master.
Did you test the change below on real hardware?
> diff --git a/drivers/tty/serial/qcom_geni_serial.c
> b/drivers/tty/serial/qcom_geni_serial.c
> index c9c52c52a98d..cb3b4febd8c2 100644
> --- a/drivers/tty/serial/qcom_geni_serial.c
> +++ b/drivers/tty/serial/qcom_geni_serial.c
> @@ -1848,16 +1848,36 @@ static int __maybe_unused
> qcom_geni_serial_runtime_suspend(struct device *dev)
> {
> struct qcom_geni_serial_port *port = dev_get_drvdata(dev);
> struct uart_port *uport = &port->uport;
> + int ret;
> +
> + ret = geni_serial_resources_off(uport);
> + if(ret) {
> + if (device_may_wakeup(dev))
> + disable_irq_wake(port->wakeup_irq);
> + }
>
> - return geni_serial_resources_off(uport);
> + if (device_may_wakeup(dev))
> + enable_irq_wake(port->wakeup_irq);
> +
> + return ret;
> }
>
> static int __maybe_unused qcom_geni_serial_runtime_resume(struct
> device *dev)
> {
> struct qcom_geni_serial_port *port = dev_get_drvdata(dev);
> struct uart_port *uport = &port->uport;
> + int ret;
> +
> + if (device_may_wakeup(dev))
> + disable_irq_wake(port->wakeup_irq);
>
> - return geni_serial_resources_on(uport);
> + ret = geni_serial_resources_on(uport);
> + if(ret) {
> + if (device_may_wakeup(dev))
> + enable_irq_wake(port->wakeup_irq);
> + }
> +
> + return ret;
> }
Best regards,
Alexey
next prev parent reply other threads:[~2025-08-26 19:54 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-21 17:45 [PATCH v7 0/8] Enable QUPs and Serial on SA8255p Qualcomm platforms Praveen Talari
2025-07-21 17:45 ` [PATCH v7 1/8] dt-bindings: serial: describe SA8255p Praveen Talari
2025-07-22 6:35 ` Krzysztof Kozlowski
2025-07-21 17:45 ` [PATCH v7 2/8] dt-bindings: qcom: geni-se: " Praveen Talari
2025-07-22 6:29 ` Krzysztof Kozlowski
2025-07-21 17:45 ` [PATCH v7 3/8] soc: qcom: geni-se: Enable QUPs on SA8255p Qualcomm platforms Praveen Talari
2025-07-21 17:45 ` [PATCH v7 4/8] serial: qcom-geni: move resource initialization to separate function Praveen Talari
2025-07-21 17:45 ` [PATCH v7 5/8] serial: qcom-geni: move resource control logic to separate functions Praveen Talari
2025-07-21 17:45 ` [PATCH v7 6/8] serial: qcom-geni: move clock-rate logic to separate function Praveen Talari
2025-07-21 17:45 ` [PATCH v7 7/8] serial: qcom-geni: Enable PM runtime for serial driver Praveen Talari
2025-08-12 10:05 ` Alexey Klimov
2025-08-19 6:50 ` Praveen Talari
2025-08-19 7:16 ` Krzysztof Kozlowski
2025-08-26 9:18 ` Alexey Klimov
2025-08-26 9:21 ` Krzysztof Kozlowski
2025-08-26 9:37 ` Alexey Klimov
2025-08-26 10:06 ` Krzysztof Kozlowski
2025-08-26 10:29 ` Praveen Talari
2025-08-26 12:30 ` Bryan O'Donoghue
2025-08-26 19:54 ` Alexey Klimov [this message]
2025-08-28 5:13 ` Praveen Talari
2025-07-21 17:45 ` [PATCH v7 8/8] serial: qcom-geni: Enable Serial on SA8255p Qualcomm platforms Praveen Talari
2025-07-22 6:27 ` [PATCH v7 0/8] Enable QUPs and " Krzysztof Kozlowski
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=DCCMFVC0DW1I.GXZVG2BQEFX7@linaro.org \
--to=alexey.klimov@linaro.org \
--cc=andersson@kernel.org \
--cc=bryan.odonoghue@linaro.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=djaggi@quicinc.com \
--cc=dmitry.baryshkov@oss.qualcomm.com \
--cc=gregkh@linuxfoundation.org \
--cc=jirislaby@kernel.org \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=krzk@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=neil.armstrong@linaro.org \
--cc=psodagud@quicinc.com \
--cc=quic_arandive@quicinc.com \
--cc=quic_cchiluve@quicinc.com \
--cc=quic_msavaliy@quicinc.com \
--cc=quic_ptalari@quicinc.com \
--cc=quic_shazhuss@quicinc.com \
--cc=quic_vtanuku@quicinc.com \
--cc=robh@kernel.org \
--cc=srini@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).