* [PATCH] net: qrtr: resend HELLO on MHI resume
@ 2026-09-09 5:58 Daniel J Blueman
2026-09-11 10:44 ` Manivannan Sadhasivam
2026-09-14 9:04 ` Thorsten Leemhuis
0 siblings, 2 replies; 9+ messages in thread
From: Daniel J Blueman @ 2026-09-09 5:58 UTC (permalink / raw)
To: Manivannan Sadhasivam
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Simon Horman, Chris Lew, Pranav Mahesh Phansalkar,
Deepak Kumar Singh, linux-arm-msm, linux-kernel,
Daniel J Blueman
Since the MHI HELLO exchange was relocated, it is sent only at device
registration. During a suspend-resume cycle, the firmware in WiFi
cards such as WCN7850 indefinitely waits for another HELLO,
triggering:
ath12k_wifi7_pci 0004:01:00.0: timeout while waiting for restart complete
ath12k_wifi7_pci 0004:01:00.0: failed to resume core: -110
Fix this by triggering the handshake from resume_early in the MHI
transport.
Validated on Qualcomm X1E-801800 on Lenovo Slim 7x across 10
suspend-resume cycles.
Fixes: 544d85de4dc2 ("net: qrtr: Send HELLO message on endpoint register")
Signed-off-by: Daniel J Blueman <daniel@quora.org>
---
net/qrtr/af_qrtr.c | 13 +++++++++++++
net/qrtr/mhi.c | 10 +++++++++-
net/qrtr/qrtr.h | 2 ++
3 files changed, 24 insertions(+), 1 deletion(-)
diff --git a/net/qrtr/af_qrtr.c b/net/qrtr/af_qrtr.c
index 78347c937af7..2ffcfc2fdb4a 100644
--- a/net/qrtr/af_qrtr.c
+++ b/net/qrtr/af_qrtr.c
@@ -623,6 +623,19 @@ static void qrtr_hello_work(struct work_struct *work)
qrtr_port_put(ctrl);
}
+/* Trigger the HELLO handshake after the remote has been reset, eg on resume */
+void qrtr_endpoint_hello(struct qrtr_endpoint *ep)
+{
+ struct qrtr_node *node = ep->node;
+
+ mutex_lock(&node->ep_lock);
+ node->hello_sent = false;
+ mutex_unlock(&node->ep_lock);
+
+ schedule_delayed_work(&node->say_hello, 0);
+}
+EXPORT_SYMBOL_GPL(qrtr_endpoint_hello);
+
/**
* qrtr_endpoint_register() - register a new endpoint
* @ep: endpoint to register
diff --git a/net/qrtr/mhi.c b/net/qrtr/mhi.c
index 3990da1a65dc..50326ffa3401 100644
--- a/net/qrtr/mhi.c
+++ b/net/qrtr/mhi.c
@@ -183,6 +183,7 @@ static int __maybe_unused qcom_mhi_qrtr_pm_suspend_late(struct device *dev)
static int __maybe_unused qcom_mhi_qrtr_pm_resume_early(struct device *dev)
{
struct mhi_device *mhi_dev = container_of(dev, struct mhi_device, dev);
+ struct qrtr_mhi_dev *qdev = dev_get_drvdata(dev);
enum mhi_state state;
int rc;
@@ -201,7 +201,13 @@ static int __maybe_unused qcom_mhi_qrtr_pm_resume_early(struct device *dev)
return rc;
}
- return qcom_mhi_qrtr_queue_dl_buffers(mhi_dev);
+ rc = qcom_mhi_qrtr_queue_dl_buffers(mhi_dev);
+ if (rc)
+ return rc;
+
+ qrtr_endpoint_hello(&qdev->ep);
+
+ return 0;
}
static const struct dev_pm_ops qcom_mhi_qrtr_pm_ops = {
diff --git a/net/qrtr/qrtr.h b/net/qrtr/qrtr.h
index 3f2d28696062..de2de69a6199 100644
--- a/net/qrtr/qrtr.h
+++ b/net/qrtr/qrtr.h
@@ -27,6 +27,8 @@ int qrtr_endpoint_register(struct qrtr_endpoint *ep, unsigned int nid);
void qrtr_endpoint_unregister(struct qrtr_endpoint *ep);
+void qrtr_endpoint_hello(struct qrtr_endpoint *ep);
+
int qrtr_endpoint_post(struct qrtr_endpoint *ep, const void *data, size_t len);
int qrtr_ns_init(void);
--
2.53.0
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] net: qrtr: resend HELLO on MHI resume
2026-09-09 5:58 [PATCH] net: qrtr: resend HELLO on MHI resume Daniel J Blueman
@ 2026-09-11 10:44 ` Manivannan Sadhasivam
2026-09-15 10:48 ` Vlastimil Babka
2026-09-14 9:04 ` Thorsten Leemhuis
1 sibling, 1 reply; 9+ messages in thread
From: Manivannan Sadhasivam @ 2026-09-11 10:44 UTC (permalink / raw)
To: Daniel J Blueman
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Simon Horman, Chris Lew, Pranav Mahesh Phansalkar,
Deepak Kumar Singh, linux-arm-msm, linux-kernel
On Wed, Sep 09, 2026 at 01:58:44PM +0800, Daniel J Blueman wrote:
> Since the MHI HELLO exchange was relocated, it is sent only at device
> registration. During a suspend-resume cycle, the firmware in WiFi
> cards such as WCN7850 indefinitely waits for another HELLO,
> triggering:
>
> ath12k_wifi7_pci 0004:01:00.0: timeout while waiting for restart complete
> ath12k_wifi7_pci 0004:01:00.0: failed to resume core: -110
>
> Fix this by triggering the handshake from resume_early in the MHI
> transport.
>
> Validated on Qualcomm X1E-801800 on Lenovo Slim 7x across 10
> suspend-resume cycles.
>
> Fixes: 544d85de4dc2 ("net: qrtr: Send HELLO message on endpoint register")
> Signed-off-by: Daniel J Blueman <daniel@quora.org>
> ---
> net/qrtr/af_qrtr.c | 13 +++++++++++++
> net/qrtr/mhi.c | 10 +++++++++-
> net/qrtr/qrtr.h | 2 ++
> 3 files changed, 24 insertions(+), 1 deletion(-)
>
> diff --git a/net/qrtr/af_qrtr.c b/net/qrtr/af_qrtr.c
> index 78347c937af7..2ffcfc2fdb4a 100644
> --- a/net/qrtr/af_qrtr.c
> +++ b/net/qrtr/af_qrtr.c
> @@ -623,6 +623,19 @@ static void qrtr_hello_work(struct work_struct *work)
> qrtr_port_put(ctrl);
> }
>
> +/* Trigger the HELLO handshake after the remote has been reset, eg on resume */
Use proper kernel-doc please.
Rest LGTM, thanks!
- Mani
--
மணிவண்ணன் சதாசிவம்
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] net: qrtr: resend HELLO on MHI resume
2026-09-09 5:58 [PATCH] net: qrtr: resend HELLO on MHI resume Daniel J Blueman
2026-09-11 10:44 ` Manivannan Sadhasivam
@ 2026-09-14 9:04 ` Thorsten Leemhuis
2026-09-14 9:39 ` Takashi Iwai
2026-09-15 10:11 ` Vlastimil Babka
1 sibling, 2 replies; 9+ messages in thread
From: Thorsten Leemhuis @ 2026-09-14 9:04 UTC (permalink / raw)
To: Daniel J Blueman, Manivannan Sadhasivam
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Simon Horman, Chris Lew, Pranav Mahesh Phansalkar,
Deepak Kumar Singh, linux-arm-msm, linux-kernel,
Linux kernel regressions list, Takashi Iwai
On 9/9/26 07:58, Daniel J Blueman wrote:
> Since the MHI HELLO exchange was relocated, it is sent only at device
> registration. During a suspend-resume cycle, the firmware in WiFi
> cards such as WCN7850 indefinitely waits for another HELLO,
> triggering:
>
> ath12k_wifi7_pci 0004:01:00.0: timeout while waiting for restart complete
> ath12k_wifi7_pci 0004:01:00.0: failed to resume core: -110
>
> Fix this by triggering the handshake from resume_early in the MHI
> transport.
>
> Validated on Qualcomm X1E-801800 on Lenovo Slim 7x across 10
> suspend-resume cycles.
For the record: Takashi ran into this regression as well and provided a
different fix, but withdrew it after I pointed out this fix, which
worked for Takashi. For details see:
https://lore.kernel.org/all/87mrtkpd2q.wl-tiwai@suse.de/
Ciao, Thorsten
> Fixes: 544d85de4dc2 ("net: qrtr: Send HELLO message on endpoint register")
> Signed-off-by: Daniel J Blueman <daniel@quora.org>
> ---
> net/qrtr/af_qrtr.c | 13 +++++++++++++
> net/qrtr/mhi.c | 10 +++++++++-
> net/qrtr/qrtr.h | 2 ++
> 3 files changed, 24 insertions(+), 1 deletion(-)
>
> diff --git a/net/qrtr/af_qrtr.c b/net/qrtr/af_qrtr.c
> index 78347c937af7..2ffcfc2fdb4a 100644
> --- a/net/qrtr/af_qrtr.c
> +++ b/net/qrtr/af_qrtr.c
> @@ -623,6 +623,19 @@ static void qrtr_hello_work(struct work_struct *work)
> qrtr_port_put(ctrl);
> }
>
> +/* Trigger the HELLO handshake after the remote has been reset, eg on resume */
> +void qrtr_endpoint_hello(struct qrtr_endpoint *ep)
> +{
> + struct qrtr_node *node = ep->node;
> +
> + mutex_lock(&node->ep_lock);
> + node->hello_sent = false;
> + mutex_unlock(&node->ep_lock);
> +
> + schedule_delayed_work(&node->say_hello, 0);
> +}
> +EXPORT_SYMBOL_GPL(qrtr_endpoint_hello);
> +
> /**
> * qrtr_endpoint_register() - register a new endpoint
> * @ep: endpoint to register
> diff --git a/net/qrtr/mhi.c b/net/qrtr/mhi.c
> index 3990da1a65dc..50326ffa3401 100644
> --- a/net/qrtr/mhi.c
> +++ b/net/qrtr/mhi.c
> @@ -183,6 +183,7 @@ static int __maybe_unused qcom_mhi_qrtr_pm_suspend_late(struct device *dev)
> static int __maybe_unused qcom_mhi_qrtr_pm_resume_early(struct device *dev)
> {
> struct mhi_device *mhi_dev = container_of(dev, struct mhi_device, dev);
> + struct qrtr_mhi_dev *qdev = dev_get_drvdata(dev);
> enum mhi_state state;
> int rc;
>
> @@ -201,7 +201,13 @@ static int __maybe_unused qcom_mhi_qrtr_pm_resume_early(struct device *dev)
> return rc;
> }
>
> - return qcom_mhi_qrtr_queue_dl_buffers(mhi_dev);
> + rc = qcom_mhi_qrtr_queue_dl_buffers(mhi_dev);
> + if (rc)
> + return rc;
> +
> + qrtr_endpoint_hello(&qdev->ep);
> +
> + return 0;
> }
>
> static const struct dev_pm_ops qcom_mhi_qrtr_pm_ops = {
> diff --git a/net/qrtr/qrtr.h b/net/qrtr/qrtr.h
> index 3f2d28696062..de2de69a6199 100644
> --- a/net/qrtr/qrtr.h
> +++ b/net/qrtr/qrtr.h
> @@ -27,6 +27,8 @@ int qrtr_endpoint_register(struct qrtr_endpoint *ep, unsigned int nid);
>
> void qrtr_endpoint_unregister(struct qrtr_endpoint *ep);
>
> +void qrtr_endpoint_hello(struct qrtr_endpoint *ep);
> +
> int qrtr_endpoint_post(struct qrtr_endpoint *ep, const void *data, size_t len);
>
> int qrtr_ns_init(void);
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] net: qrtr: resend HELLO on MHI resume
2026-09-14 9:04 ` Thorsten Leemhuis
@ 2026-09-14 9:39 ` Takashi Iwai
2026-09-15 10:11 ` Vlastimil Babka
1 sibling, 0 replies; 9+ messages in thread
From: Takashi Iwai @ 2026-09-14 9:39 UTC (permalink / raw)
To: Thorsten Leemhuis
Cc: Daniel J Blueman, Manivannan Sadhasivam, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Simon Horman,
Chris Lew, Pranav Mahesh Phansalkar, Deepak Kumar Singh,
linux-arm-msm, linux-kernel, Linux kernel regressions list,
Takashi Iwai
On Mon, 14 Sep 2026 11:04:25 +0200,
Thorsten Leemhuis wrote:
>
> On 9/9/26 07:58, Daniel J Blueman wrote:
> > Since the MHI HELLO exchange was relocated, it is sent only at device
> > registration. During a suspend-resume cycle, the firmware in WiFi
> > cards such as WCN7850 indefinitely waits for another HELLO,
> > triggering:
> >
> > ath12k_wifi7_pci 0004:01:00.0: timeout while waiting for restart complete
> > ath12k_wifi7_pci 0004:01:00.0: failed to resume core: -110
> >
> > Fix this by triggering the handshake from resume_early in the MHI
> > transport.
> >
> > Validated on Qualcomm X1E-801800 on Lenovo Slim 7x across 10
> > suspend-resume cycles.
>
> For the record: Takashi ran into this regression as well and provided a
> different fix, but withdrew it after I pointed out this fix, which
> worked for Takashi. For details see:
> https://lore.kernel.org/all/87mrtkpd2q.wl-tiwai@suse.de/
Yep, feel free to take my tested-by tag, too:
Tested-by: Takashi Iwai <tiwai@suse.de>
thanks,
Takashi
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] net: qrtr: resend HELLO on MHI resume
2026-09-14 9:04 ` Thorsten Leemhuis
2026-09-14 9:39 ` Takashi Iwai
@ 2026-09-15 10:11 ` Vlastimil Babka
2026-09-15 10:45 ` Vlastimil Babka (SUSE)
1 sibling, 1 reply; 9+ messages in thread
From: Vlastimil Babka @ 2026-09-15 10:11 UTC (permalink / raw)
To: Thorsten Leemhuis, Daniel J Blueman, Manivannan Sadhasivam
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Simon Horman, Chris Lew, Pranav Mahesh Phansalkar,
Deepak Kumar Singh, linux-arm-msm, linux-kernel,
Linux kernel regressions list, Takashi Iwai
On 9/14/26 11:04, Thorsten Leemhuis wrote:
> On 9/9/26 07:58, Daniel J Blueman wrote:
>> Since the MHI HELLO exchange was relocated, it is sent only at device
>> registration. During a suspend-resume cycle, the firmware in WiFi
>> cards such as WCN7850 indefinitely waits for another HELLO,
>> triggering:
>>
>> ath12k_wifi7_pci 0004:01:00.0: timeout while waiting for restart complete
>> ath12k_wifi7_pci 0004:01:00.0: failed to resume core: -110
>>
>> Fix this by triggering the handshake from resume_early in the MHI
>> transport.
>>
>> Validated on Qualcomm X1E-801800 on Lenovo Slim 7x across 10
>> suspend-resume cycles.
>
> For the record: Takashi ran into this regression as well and provided a
> different fix, but withdrew it after I pointed out this fix, which
> worked for Takashi. For details see:
> https://lore.kernel.org/all/87mrtkpd2q.wl-tiwai@suse.de/
Thanks to Thorsten pointing me there I skipped the bisect and applied this
patch instead and it works.
My laptop is T14s AMD Gen3 with ath11k_pci. Since rc2 the wifi would stop
working on suspend/resume, making the resume freeze for a while (I initially
thought it was frozen completely and was shutting off the laptop).
Interestingly the card doesn't recover after reboot, but only after a full
power off/on cycle. But if the HELLO handshake is sent after a boot,
shouldn't it recover? Maybe the hardware gets too confused to recover.
Dunno. Hm maybe I can try if 7.2 kernel (and/or 7.3 with this patch)
recovers it without poweroff/on after a 7.3 without this patch
suspend/resume wedges it.
But anyway this prevents the suspend/resume issue for me from happening in
the first place on 7.3-rc3, so:
Tested-by: Vlastimil Babka (SUSE) <vbabka@kernel.org>
>
> Ciao, Thorsten
>> Fixes: 544d85de4dc2 ("net: qrtr: Send HELLO message on endpoint register")
>> Signed-off-by: Daniel J Blueman <daniel@quora.org>
>> ---
>> net/qrtr/af_qrtr.c | 13 +++++++++++++
>> net/qrtr/mhi.c | 10 +++++++++-
>> net/qrtr/qrtr.h | 2 ++
>> 3 files changed, 24 insertions(+), 1 deletion(-)
>>
>> diff --git a/net/qrtr/af_qrtr.c b/net/qrtr/af_qrtr.c
>> index 78347c937af7..2ffcfc2fdb4a 100644
>> --- a/net/qrtr/af_qrtr.c
>> +++ b/net/qrtr/af_qrtr.c
>> @@ -623,6 +623,19 @@ static void qrtr_hello_work(struct work_struct *work)
>> qrtr_port_put(ctrl);
>> }
>>
>> +/* Trigger the HELLO handshake after the remote has been reset, eg on resume */
>> +void qrtr_endpoint_hello(struct qrtr_endpoint *ep)
>> +{
>> + struct qrtr_node *node = ep->node;
>> +
>> + mutex_lock(&node->ep_lock);
>> + node->hello_sent = false;
>> + mutex_unlock(&node->ep_lock);
>> +
>> + schedule_delayed_work(&node->say_hello, 0);
>> +}
>> +EXPORT_SYMBOL_GPL(qrtr_endpoint_hello);
>> +
>> /**
>> * qrtr_endpoint_register() - register a new endpoint
>> * @ep: endpoint to register
>> diff --git a/net/qrtr/mhi.c b/net/qrtr/mhi.c
>> index 3990da1a65dc..50326ffa3401 100644
>> --- a/net/qrtr/mhi.c
>> +++ b/net/qrtr/mhi.c
>> @@ -183,6 +183,7 @@ static int __maybe_unused qcom_mhi_qrtr_pm_suspend_late(struct device *dev)
>> static int __maybe_unused qcom_mhi_qrtr_pm_resume_early(struct device *dev)
>> {
>> struct mhi_device *mhi_dev = container_of(dev, struct mhi_device, dev);
>> + struct qrtr_mhi_dev *qdev = dev_get_drvdata(dev);
>> enum mhi_state state;
>> int rc;
>>
>> @@ -201,7 +201,13 @@ static int __maybe_unused qcom_mhi_qrtr_pm_resume_early(struct device *dev)
>> return rc;
>> }
>>
>> - return qcom_mhi_qrtr_queue_dl_buffers(mhi_dev);
>> + rc = qcom_mhi_qrtr_queue_dl_buffers(mhi_dev);
>> + if (rc)
>> + return rc;
>> +
>> + qrtr_endpoint_hello(&qdev->ep);
>> +
>> + return 0;
>> }
>>
>> static const struct dev_pm_ops qcom_mhi_qrtr_pm_ops = {
>> diff --git a/net/qrtr/qrtr.h b/net/qrtr/qrtr.h
>> index 3f2d28696062..de2de69a6199 100644
>> --- a/net/qrtr/qrtr.h
>> +++ b/net/qrtr/qrtr.h
>> @@ -27,6 +27,8 @@ int qrtr_endpoint_register(struct qrtr_endpoint *ep, unsigned int nid);
>>
>> void qrtr_endpoint_unregister(struct qrtr_endpoint *ep);
>>
>> +void qrtr_endpoint_hello(struct qrtr_endpoint *ep);
>> +
>> int qrtr_endpoint_post(struct qrtr_endpoint *ep, const void *data, size_t len);
>>
>> int qrtr_ns_init(void);
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] net: qrtr: resend HELLO on MHI resume
2026-09-15 10:11 ` Vlastimil Babka
@ 2026-09-15 10:45 ` Vlastimil Babka (SUSE)
0 siblings, 0 replies; 9+ messages in thread
From: Vlastimil Babka (SUSE) @ 2026-09-15 10:45 UTC (permalink / raw)
To: Thorsten Leemhuis, Daniel J Blueman, Manivannan Sadhasivam
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Simon Horman, Chris Lew, Pranav Mahesh Phansalkar,
Deepak Kumar Singh, linux-arm-msm, linux-kernel,
Linux kernel regressions list, Takashi Iwai
On 9/15/26 12:11, Vlastimil Babka wrote:
> On 9/14/26 11:04, Thorsten Leemhuis wrote:
>> On 9/9/26 07:58, Daniel J Blueman wrote:
>>> Since the MHI HELLO exchange was relocated, it is sent only at device
>>> registration. During a suspend-resume cycle, the firmware in WiFi
>>> cards such as WCN7850 indefinitely waits for another HELLO,
>>> triggering:
>>>
>>> ath12k_wifi7_pci 0004:01:00.0: timeout while waiting for restart complete
>>> ath12k_wifi7_pci 0004:01:00.0: failed to resume core: -110
>>>
>>> Fix this by triggering the handshake from resume_early in the MHI
>>> transport.
>>>
>>> Validated on Qualcomm X1E-801800 on Lenovo Slim 7x across 10
>>> suspend-resume cycles.
>>
>> For the record: Takashi ran into this regression as well and provided a
>> different fix, but withdrew it after I pointed out this fix, which
>> worked for Takashi. For details see:
>> https://lore.kernel.org/all/87mrtkpd2q.wl-tiwai@suse.de/
>
> Thanks to Thorsten pointing me there I skipped the bisect and applied this
> patch instead and it works.
>
> My laptop is T14s AMD Gen3 with ath11k_pci. Since rc2 the wifi would stop
> working on suspend/resume, making the resume freeze for a while (I initially
> thought it was frozen completely and was shutting off the laptop).
>
> Interestingly the card doesn't recover after reboot, but only after a full
> power off/on cycle. But if the HELLO handshake is sent after a boot,
> shouldn't it recover? Maybe the hardware gets too confused to recover.
> Dunno. Hm maybe I can try if 7.2 kernel (and/or 7.3 with this patch)
> recovers it without poweroff/on after a 7.3 without this patch
> suspend/resume wedges it.
Neither 7.2 nor 7.3 + patch was able to recover the card on reboot, so while
that's not great, at least 7.3+patch isn't worse in this aspect.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] net: qrtr: resend HELLO on MHI resume
2026-09-11 10:44 ` Manivannan Sadhasivam
@ 2026-09-15 10:48 ` Vlastimil Babka
2026-09-16 3:09 ` Jeff Johnson
0 siblings, 1 reply; 9+ messages in thread
From: Vlastimil Babka @ 2026-09-15 10:48 UTC (permalink / raw)
To: Manivannan Sadhasivam, Daniel J Blueman,
Linux regressions mailing list, Thorsten Leemhuis, Takashi Iwai
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Simon Horman, Chris Lew, Pranav Mahesh Phansalkar,
Deepak Kumar Singh, linux-arm-msm, linux-kernel
On 9/11/26 12:44, Manivannan Sadhasivam wrote:
> On Wed, Sep 09, 2026 at 01:58:44PM +0800, Daniel J Blueman wrote:
>> Since the MHI HELLO exchange was relocated, it is sent only at device
>> registration. During a suspend-resume cycle, the firmware in WiFi
>> cards such as WCN7850 indefinitely waits for another HELLO,
>> triggering:
>>
>> ath12k_wifi7_pci 0004:01:00.0: timeout while waiting for restart complete
>> ath12k_wifi7_pci 0004:01:00.0: failed to resume core: -110
>>
>> Fix this by triggering the handshake from resume_early in the MHI
>> transport.
>>
>> Validated on Qualcomm X1E-801800 on Lenovo Slim 7x across 10
>> suspend-resume cycles.
>>
>> Fixes: 544d85de4dc2 ("net: qrtr: Send HELLO message on endpoint register")
>> Signed-off-by: Daniel J Blueman <daniel@quora.org>
>> ---
>> net/qrtr/af_qrtr.c | 13 +++++++++++++
>> net/qrtr/mhi.c | 10 +++++++++-
>> net/qrtr/qrtr.h | 2 ++
>> 3 files changed, 24 insertions(+), 1 deletion(-)
>>
>> diff --git a/net/qrtr/af_qrtr.c b/net/qrtr/af_qrtr.c
>> index 78347c937af7..2ffcfc2fdb4a 100644
>> --- a/net/qrtr/af_qrtr.c
>> +++ b/net/qrtr/af_qrtr.c
>> @@ -623,6 +623,19 @@ static void qrtr_hello_work(struct work_struct *work)
>> qrtr_port_put(ctrl);
>> }
>>
>> +/* Trigger the HELLO handshake after the remote has been reset, eg on resume */
>
> Use proper kernel-doc please.
Please prioritize merging this sooner than later (it's a regression from
7.3-rc2 that would hit people if it made it to 7.3 final) even if it means
fixing up non-critical aspects later, or by maintainer upon merging.
Thanks,
Vlastimil
> Rest LGTM, thanks!
>
> - Mani
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] net: qrtr: resend HELLO on MHI resume
2026-09-15 10:48 ` Vlastimil Babka
@ 2026-09-16 3:09 ` Jeff Johnson
2026-09-16 9:36 ` Thorsten Leemhuis
0 siblings, 1 reply; 9+ messages in thread
From: Jeff Johnson @ 2026-09-16 3:09 UTC (permalink / raw)
To: Vlastimil Babka, Manivannan Sadhasivam, Daniel J Blueman,
Linux regressions mailing list, Thorsten Leemhuis, Takashi Iwai
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Simon Horman, Chris Lew, Pranav Mahesh Phansalkar,
Deepak Kumar Singh, linux-arm-msm, linux-kernel, linux-wireless,
ath11k, ath12k
On 9/15/2026 3:48 AM, Vlastimil Babka wrote:
> On 9/11/26 12:44, Manivannan Sadhasivam wrote:
>> On Wed, Sep 09, 2026 at 01:58:44PM +0800, Daniel J Blueman wrote:
>>> Since the MHI HELLO exchange was relocated, it is sent only at device
>>> registration. During a suspend-resume cycle, the firmware in WiFi
>>> cards such as WCN7850 indefinitely waits for another HELLO,
>>> triggering:
>>>
>>> ath12k_wifi7_pci 0004:01:00.0: timeout while waiting for restart complete
>>> ath12k_wifi7_pci 0004:01:00.0: failed to resume core: -110
>>>
>>> Fix this by triggering the handshake from resume_early in the MHI
>>> transport.
>>>
>>> Validated on Qualcomm X1E-801800 on Lenovo Slim 7x across 10
>>> suspend-resume cycles.
>>>
>>> Fixes: 544d85de4dc2 ("net: qrtr: Send HELLO message on endpoint register")
>>> Signed-off-by: Daniel J Blueman <daniel@quora.org>
>>> ---
>>> net/qrtr/af_qrtr.c | 13 +++++++++++++
>>> net/qrtr/mhi.c | 10 +++++++++-
>>> net/qrtr/qrtr.h | 2 ++
>>> 3 files changed, 24 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/net/qrtr/af_qrtr.c b/net/qrtr/af_qrtr.c
>>> index 78347c937af7..2ffcfc2fdb4a 100644
>>> --- a/net/qrtr/af_qrtr.c
>>> +++ b/net/qrtr/af_qrtr.c
>>> @@ -623,6 +623,19 @@ static void qrtr_hello_work(struct work_struct *work)
>>> qrtr_port_put(ctrl);
>>> }
>>>
>>> +/* Trigger the HELLO handshake after the remote has been reset, eg on resume */
>>
>> Use proper kernel-doc please.
>
> Please prioritize merging this sooner than later (it's a regression from
> 7.3-rc2 that would hit people if it made it to 7.3 final) even if it means
> fixing up non-critical aspects later, or by maintainer upon merging.
Concur. I recently fast-forwarded my ath tree and picked up the buggy commit,
so everyone using my tree is now affected.
And just want to point out that many of the function comments in this file do
not use kernel-doc format, so I would not consider that a blocker. But it also
would be trivial for the maintainer to add.
I've tested this on my HP ZBook 14 where I've replaced the OEM Wi-Fi adapter
with WCN7850...
Tested-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
/jeff
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] net: qrtr: resend HELLO on MHI resume
2026-09-16 3:09 ` Jeff Johnson
@ 2026-09-16 9:36 ` Thorsten Leemhuis
0 siblings, 0 replies; 9+ messages in thread
From: Thorsten Leemhuis @ 2026-09-16 9:36 UTC (permalink / raw)
To: Jeff Johnson, Vlastimil Babka, Manivannan Sadhasivam,
Daniel J Blueman, Linux regressions mailing list, Takashi Iwai
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Simon Horman, Chris Lew, Pranav Mahesh Phansalkar,
Deepak Kumar Singh, linux-arm-msm, linux-kernel, linux-wireless,
ath11k, ath12k, netdev
On 9/16/26 05:09, Jeff Johnson wrote:
> On 9/15/2026 3:48 AM, Vlastimil Babka wrote:
>> On 9/11/26 12:44, Manivannan Sadhasivam wrote:
>>> On Wed, Sep 09, 2026 at 01:58:44PM +0800, Daniel J Blueman wrote:
>>>> Since the MHI HELLO exchange was relocated, it is sent only at device
>>>> registration. During a suspend-resume cycle, the firmware in WiFi
>>>> cards such as WCN7850 indefinitely waits for another HELLO,
>>>> triggering:
>>>> [...]
>>>> Fixes: 544d85de4dc2 ("net: qrtr: Send HELLO message on endpoint register")
>>>> Signed-off-by: Daniel J Blueman <daniel@quora.org>
>>>> [...]
>>>> diff --git a/net/qrtr/af_qrtr.c b/net/qrtr/af_qrtr.c
>>>> index 78347c937af7..2ffcfc2fdb4a 100644
>>>> --- a/net/qrtr/af_qrtr.c
>>>> +++ b/net/qrtr/af_qrtr.c
>>>> @@ -623,6 +623,19 @@ static void qrtr_hello_work(struct work_struct *work)
>>>> qrtr_port_put(ctrl);
>>>> }
>>>>
>>>> +/* Trigger the HELLO handshake after the remote has been reset, eg on resume */
>>>
>>> Use proper kernel-doc please.
>
>> Please prioritize merging this sooner than later (it's a regression from
>> 7.3-rc2 that would hit people if it made it to 7.3 final) even if it means
>> fixing up non-critical aspects later, or by maintainer upon merging.
>
> Concur. I recently fast-forwarded my ath tree and picked up the buggy commit,
> so everyone using my tree is now affected.
I wonder if we need somebody (Daniel?) to repost this patch to at least
have a chance to get it into the next -rc, as I didn't find the fix in
netdev's patchwork when I just looked -- maybe I missed something, but I
guess that's because the patch wasn't CCed to netdev.
Ciao, Thorsten
> And just want to point out that many of the function comments in this file do
> not use kernel-doc format, so I would not consider that a blocker. But it also
> would be trivial for the maintainer to add.
>
> I've tested this on my HP ZBook 14 where I've replaced the OEM Wi-Fi adapter
> with WCN7850...
>
> Tested-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
>
> /jeff
>
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2026-09-16 9:36 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-09 5:58 [PATCH] net: qrtr: resend HELLO on MHI resume Daniel J Blueman
2026-09-11 10:44 ` Manivannan Sadhasivam
2026-09-15 10:48 ` Vlastimil Babka
2026-09-16 3:09 ` Jeff Johnson
2026-09-16 9:36 ` Thorsten Leemhuis
2026-09-14 9:04 ` Thorsten Leemhuis
2026-09-14 9:39 ` Takashi Iwai
2026-09-15 10:11 ` Vlastimil Babka
2026-09-15 10:45 ` Vlastimil Babka (SUSE)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®