From: Greg Kroah-Hartman Date: Tue, 28 Oct 2025 08:49:57 +0000 (+0100) Subject: drop ath10k patch from 5.10 and 5.4 queues X-Git-Tag: v5.4.301~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b0e64dbfc7a19c2c7b96eb3eccc703d1d69c9226;p=thirdparty%2Fkernel%2Fstable-queue.git drop ath10k patch from 5.10 and 5.4 queues --- diff --git a/queue-5.10/series b/queue-5.10/series index 36b81ba27a..aa5d557ef8 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -64,7 +64,6 @@ acpi-nfit-fix-incorrect-ndr_desc-being-reportedin-de.patch rdma-core-resolve-mac-of-next-hop-device-without-arp.patch ib-sa-fix-sa_local_svc_timeout_ms-read-race.patch documentation-trace-historgram-design-separate-sched.patch -wifi-ath10k-avoid-unnecessary-wait-for-service-ready.patch sparc-fix-accurate-exception-reporting-in-copy_-from.patch sparc-fix-accurate-exception-reporting-in-copy_-from.patch-18358 sparc-fix-accurate-exception-reporting-in-copy_-from.patch-24062 diff --git a/queue-5.10/wifi-ath10k-avoid-unnecessary-wait-for-service-ready.patch b/queue-5.10/wifi-ath10k-avoid-unnecessary-wait-for-service-ready.patch deleted file mode 100644 index 62ee00e984..0000000000 --- a/queue-5.10/wifi-ath10k-avoid-unnecessary-wait-for-service-ready.patch +++ /dev/null @@ -1,93 +0,0 @@ -From f29e620571cce6080bedc726e9ed931b3b2611b9 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Mon, 11 Aug 2025 17:26:45 +0800 -Subject: wifi: ath10k: avoid unnecessary wait for service ready message - -From: Baochen Qiang - -[ Upstream commit 51a73f1b2e56b0324b4a3bb8cebc4221b5be4c7a ] - -Commit e57b7d62a1b2 ("wifi: ath10k: poll service ready message before -failing") works around the failure in waiting for the service ready -message by active polling. Note the polling is triggered after initial -wait timeout, which means that the wait-till-timeout can not be avoided -even the message is ready. - -A possible fix is to do polling once before wait as well, however this -can not handle the race that the message arrives right after polling. -So the solution is to do periodic polling until timeout. - -Tested-on: QCA6174 hw3.2 PCI WLAN.RM.4.4.1-00309-QCARMSWPZ-1 - -Fixes: e57b7d62a1b2 ("wifi: ath10k: poll service ready message before failing") -Reported-by: Paul Menzel -Closes: https://lore.kernel.org/all/97a15967-5518-4731-a8ff-d43ff7f437b0@molgen.mpg.de -Signed-off-by: Baochen Qiang -Reviewed-by: Vasanthakumar Thiagarajan -Link: https://patch.msgid.link/20250811-ath10k-avoid-unnecessary-wait-v1-1-db2deb87c39b@oss.qualcomm.com -Signed-off-by: Jeff Johnson -Signed-off-by: Sasha Levin ---- - drivers/net/wireless/ath/ath10k/wmi.c | 39 +++++++++++++-------------- - 1 file changed, 19 insertions(+), 20 deletions(-) - -diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c -index c9a74f3e2e601..858db97ecfed9 100644 ---- a/drivers/net/wireless/ath/ath10k/wmi.c -+++ b/drivers/net/wireless/ath/ath10k/wmi.c -@@ -1762,33 +1762,32 @@ void ath10k_wmi_put_wmi_channel(struct ath10k *ar, struct wmi_channel *ch, - - int ath10k_wmi_wait_for_service_ready(struct ath10k *ar) - { -+ unsigned long timeout = jiffies + WMI_SERVICE_READY_TIMEOUT_HZ; - unsigned long time_left, i; - -- time_left = wait_for_completion_timeout(&ar->wmi.service_ready, -- WMI_SERVICE_READY_TIMEOUT_HZ); -- if (!time_left) { -- /* Sometimes the PCI HIF doesn't receive interrupt -- * for the service ready message even if the buffer -- * was completed. PCIe sniffer shows that it's -- * because the corresponding CE ring doesn't fires -- * it. Workaround here by polling CE rings once. -- */ -- ath10k_warn(ar, "failed to receive service ready completion, polling..\n"); -- -+ /* Sometimes the PCI HIF doesn't receive interrupt -+ * for the service ready message even if the buffer -+ * was completed. PCIe sniffer shows that it's -+ * because the corresponding CE ring doesn't fires -+ * it. Workaround here by polling CE rings. Since -+ * the message could arrive at any time, continue -+ * polling until timeout. -+ */ -+ do { - for (i = 0; i < CE_COUNT; i++) - ath10k_hif_send_complete_check(ar, i, 1); - -+ /* The 100 ms granularity is a tradeoff considering scheduler -+ * overhead and response latency -+ */ - time_left = wait_for_completion_timeout(&ar->wmi.service_ready, -- WMI_SERVICE_READY_TIMEOUT_HZ); -- if (!time_left) { -- ath10k_warn(ar, "polling timed out\n"); -- return -ETIMEDOUT; -- } -- -- ath10k_warn(ar, "service ready completion received, continuing normally\n"); -- } -+ msecs_to_jiffies(100)); -+ if (time_left) -+ return 0; -+ } while (time_before(jiffies, timeout)); - -- return 0; -+ ath10k_warn(ar, "failed to receive service ready completion\n"); -+ return -ETIMEDOUT; - } - - int ath10k_wmi_wait_for_unified_ready(struct ath10k *ar) --- -2.51.0 - diff --git a/queue-5.4/series b/queue-5.4/series index 9be5036ba4..979d5c3665 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -52,7 +52,6 @@ drivers-base-node-handle-error-properly-in-register_.patch wifi-mt76-fix-potential-memory-leak-in-mt76_wmac_pro.patch rdma-core-resolve-mac-of-next-hop-device-without-arp.patch ib-sa-fix-sa_local_svc_timeout_ms-read-race.patch -wifi-ath10k-avoid-unnecessary-wait-for-service-ready.patch sparc-fix-accurate-exception-reporting-in-copy_-from.patch sparc-fix-accurate-exception-reporting-in-copy_-from.patch-14259 sparc-fix-accurate-exception-reporting-in-copy_-from.patch-17902 diff --git a/queue-5.4/wifi-ath10k-avoid-unnecessary-wait-for-service-ready.patch b/queue-5.4/wifi-ath10k-avoid-unnecessary-wait-for-service-ready.patch deleted file mode 100644 index 362a3cf724..0000000000 --- a/queue-5.4/wifi-ath10k-avoid-unnecessary-wait-for-service-ready.patch +++ /dev/null @@ -1,93 +0,0 @@ -From f9ce0c7c8d85cf2b246c5fcf496b1d6a23cce4c0 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Mon, 11 Aug 2025 17:26:45 +0800 -Subject: wifi: ath10k: avoid unnecessary wait for service ready message - -From: Baochen Qiang - -[ Upstream commit 51a73f1b2e56b0324b4a3bb8cebc4221b5be4c7a ] - -Commit e57b7d62a1b2 ("wifi: ath10k: poll service ready message before -failing") works around the failure in waiting for the service ready -message by active polling. Note the polling is triggered after initial -wait timeout, which means that the wait-till-timeout can not be avoided -even the message is ready. - -A possible fix is to do polling once before wait as well, however this -can not handle the race that the message arrives right after polling. -So the solution is to do periodic polling until timeout. - -Tested-on: QCA6174 hw3.2 PCI WLAN.RM.4.4.1-00309-QCARMSWPZ-1 - -Fixes: e57b7d62a1b2 ("wifi: ath10k: poll service ready message before failing") -Reported-by: Paul Menzel -Closes: https://lore.kernel.org/all/97a15967-5518-4731-a8ff-d43ff7f437b0@molgen.mpg.de -Signed-off-by: Baochen Qiang -Reviewed-by: Vasanthakumar Thiagarajan -Link: https://patch.msgid.link/20250811-ath10k-avoid-unnecessary-wait-v1-1-db2deb87c39b@oss.qualcomm.com -Signed-off-by: Jeff Johnson -Signed-off-by: Sasha Levin ---- - drivers/net/wireless/ath/ath10k/wmi.c | 39 +++++++++++++-------------- - 1 file changed, 19 insertions(+), 20 deletions(-) - -diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c -index ed6316c41cb78..0123d93323114 100644 ---- a/drivers/net/wireless/ath/ath10k/wmi.c -+++ b/drivers/net/wireless/ath/ath10k/wmi.c -@@ -1720,33 +1720,32 @@ void ath10k_wmi_put_wmi_channel(struct wmi_channel *ch, - - int ath10k_wmi_wait_for_service_ready(struct ath10k *ar) - { -+ unsigned long timeout = jiffies + WMI_SERVICE_READY_TIMEOUT_HZ; - unsigned long time_left, i; - -- time_left = wait_for_completion_timeout(&ar->wmi.service_ready, -- WMI_SERVICE_READY_TIMEOUT_HZ); -- if (!time_left) { -- /* Sometimes the PCI HIF doesn't receive interrupt -- * for the service ready message even if the buffer -- * was completed. PCIe sniffer shows that it's -- * because the corresponding CE ring doesn't fires -- * it. Workaround here by polling CE rings once. -- */ -- ath10k_warn(ar, "failed to receive service ready completion, polling..\n"); -- -+ /* Sometimes the PCI HIF doesn't receive interrupt -+ * for the service ready message even if the buffer -+ * was completed. PCIe sniffer shows that it's -+ * because the corresponding CE ring doesn't fires -+ * it. Workaround here by polling CE rings. Since -+ * the message could arrive at any time, continue -+ * polling until timeout. -+ */ -+ do { - for (i = 0; i < CE_COUNT; i++) - ath10k_hif_send_complete_check(ar, i, 1); - -+ /* The 100 ms granularity is a tradeoff considering scheduler -+ * overhead and response latency -+ */ - time_left = wait_for_completion_timeout(&ar->wmi.service_ready, -- WMI_SERVICE_READY_TIMEOUT_HZ); -- if (!time_left) { -- ath10k_warn(ar, "polling timed out\n"); -- return -ETIMEDOUT; -- } -- -- ath10k_warn(ar, "service ready completion received, continuing normally\n"); -- } -+ msecs_to_jiffies(100)); -+ if (time_left) -+ return 0; -+ } while (time_before(jiffies, timeout)); - -- return 0; -+ ath10k_warn(ar, "failed to receive service ready completion\n"); -+ return -ETIMEDOUT; - } - - int ath10k_wmi_wait_for_unified_ready(struct ath10k *ar) --- -2.51.0 -