From: Greg Kroah-Hartman Date: Sat, 8 Nov 2025 05:28:32 +0000 (+0900) Subject: 5.15-stable patches X-Git-Tag: v6.12.58~26 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e578a9cb7d258e1f87dbbcd5b5a514050d4e1aa5;p=thirdparty%2Fkernel%2Fstable-queue.git 5.15-stable patches added patches: revert-wifi-ath10k-avoid-unnecessary-wait-for-service-ready-message.patch --- diff --git a/queue-5.15/revert-wifi-ath10k-avoid-unnecessary-wait-for-service-ready-message.patch b/queue-5.15/revert-wifi-ath10k-avoid-unnecessary-wait-for-service-ready-message.patch new file mode 100644 index 0000000000..ed63c2afcd --- /dev/null +++ b/queue-5.15/revert-wifi-ath10k-avoid-unnecessary-wait-for-service-ready-message.patch @@ -0,0 +1,85 @@ +From 2469bb6a6af944755a7d7daf66be90f3b8decbf9 Mon Sep 17 00:00:00 2001 +From: Baochen Qiang +Date: Mon, 27 Oct 2025 09:49:12 +0800 +Subject: Revert "wifi: ath10k: avoid unnecessary wait for service ready message" + +From: Baochen Qiang + +commit 2469bb6a6af944755a7d7daf66be90f3b8decbf9 upstream. + +This reverts commit 51a73f1b2e56b0324b4a3bb8cebc4221b5be4c7a. + +Although this commit benefits QCA6174, it breaks QCA988x and +QCA9984 [1][2]. Since it is not likely to root cause/fix this +issue in a short time, revert it to get those chips back. + +Compile tested only. + +Fixes: 51a73f1b2e56 ("wifi: ath10k: avoid unnecessary wait for service ready message") +Link: https://lore.kernel.org/ath10k/6d41bc00602c33ffbf68781f563ff2e6c6915a3e.camel@gmail.com # [1] +Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220671 # [2] +Signed-off-by: Baochen Qiang +Reviewed-by: Vasanthakumar Thiagarajan +Cc: stable@vger.kernel.org +Link: https://patch.msgid.link/20251027-ath10k-revert-polling-first-change-v1-1-89aaf3bcbfa1@oss.qualcomm.com +Signed-off-by: Jeff Johnson +Signed-off-by: Greg Kroah-Hartman +--- + drivers/net/wireless/ath/ath10k/wmi.c | 39 +++++++++++++++++----------------- + 1 file changed, 20 insertions(+), 19 deletions(-) + +--- a/drivers/net/wireless/ath/ath10k/wmi.c ++++ b/drivers/net/wireless/ath/ath10k/wmi.c +@@ -1762,32 +1762,33 @@ void ath10k_wmi_put_wmi_channel(struct a + + int ath10k_wmi_wait_for_service_ready(struct ath10k *ar) + { +- unsigned long timeout = jiffies + WMI_SERVICE_READY_TIMEOUT_HZ; + unsigned long time_left, i; + +- /* 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 { ++ 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"); ++ + 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, +- msecs_to_jiffies(100)); +- if (time_left) +- return 0; +- } while (time_before(jiffies, timeout)); ++ 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"); ++ } + +- ath10k_warn(ar, "failed to receive service ready completion\n"); +- return -ETIMEDOUT; ++ return 0; + } + + int ath10k_wmi_wait_for_unified_ready(struct ath10k *ar) diff --git a/queue-5.15/series b/queue-5.15/series index 038c0f8805..190dc2d75e 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -209,3 +209,4 @@ fbdev-add-bounds-checking-in-bit_putcs-to-fix-vmallo.patch asoc-meson-aiu-encoder-i2s-fix-bit-clock-polarity.patch ceph-add-checking-of-wait_for_completion_killable-re.patch alsa-hda-realtek-audio-disappears-on-hp-15-fc000-aft.patch +revert-wifi-ath10k-avoid-unnecessary-wait-for-service-ready-message.patch