mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Christopher Griffin via B4 Relay <devnull+christophergriffin05.gmail.com@kernel.org>
To: Jeff Johnson <jjohnson@kernel.org>, Kalle Valo <kvalo@kernel.org>,
	 Hari Chandrakanthan <quic_haric@quicinc.com>,
	 Venkateswara Naralasetty <quic_vnaralas@quicinc.com>,
	 Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>,
	 Anilkumar Kolli <quic_akolli@quicinc.com>,
	 Loic Poulain <loic.poulain@oss.qualcomm.com>
Cc: linux-wireless@vger.kernel.org, ath11k@lists.infradead.org,
	 linux-kernel@vger.kernel.org,
	 Maharaja Kennadyrajan <quic_mkenna@quicinc.com>,
	 John Crispin <john@phrozen.org>,
	 Govindaraj Saminathan <quic_gsamin@quicinc.com>,
	ath10k@lists.infradead.org,  Wen Gong <quic_wgong@quicinc.com>,
	 Christopher Griffin <christophergriffin05@gmail.com>
Subject: [PATCH 2/3] wifi: ath11k: don't arm the scan timeout for a scan that did not start
Date: Thu, 05 Nov 2026 12:11:37 -0600	[thread overview]
Message-ID: <20261105-ath-recovery-scan-timeout-v1-2-99a70d89e114@gmail.com> (raw)
In-Reply-To: <20261105-ath-recovery-scan-timeout-v1-0-99a70d89e114@gmail.com>

From: Christopher Griffin <christophergriffin05@gmail.com>

When ath11k_start_scan() fails, ath11k_mac_op_hw_scan() sets the scan
state back to idle and returns the error to mac80211, but first still
queues ar->scan.timeout. The timeout then stays pending for the full
scan time (20 s by default) although no scan is running. A scan started
within that time gets no timeout of its own, as the work is already
pending, and the stale one aborts it early.

The stale timeout can also outlive the radio. On a QCN9074 whose
firmware crashed during a scan, recovery failed and the driver was
unbound and bound again; the failed scan's timeout then fired from the
freed ath11k:

  [  145.937344] ath11k_pci 0001:01:00.0: failed to start hw scan: -110
  [  166.251148] workqueue: cannot queue ath11k_scan_timeout_work [ath11k] on wq D@\x7f\xff \x05\xb6...
  [  166.254814] WARNING: CPU: 2 PID: 0 at kernel/workqueue.c:2292 __queue_work+0x3c4/0x4d8

Don't queue the timeout when the scan did not start, as
ath11k_mac_op_remain_on_channel() and ath12k already do.

Fixes: d5c65159f289 ("ath11k: driver for Qualcomm IEEE 802.11ax devices")
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Christopher Griffin <christophergriffin05@gmail.com>
---
 drivers/net/wireless/ath/ath11k/mac.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c
index 5e4bb0ad057dd..291077c551476 100644
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -4335,6 +4335,7 @@ static int ath11k_mac_op_hw_scan(struct ieee80211_hw *hw,
 		spin_lock_bh(&ar->data_lock);
 		ar->scan.state = ATH11K_SCAN_IDLE;
 		spin_unlock_bh(&ar->data_lock);
+		goto exit;
 	}
 
 	ieee80211_queue_delayed_work(ar->hw, &ar->scan.timeout,

-- 
2.43.0



  parent reply	other threads:[~2026-11-05 18:11 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-05 18:11 [PATCH 0/3] wifi: ath10k/ath11k: firmware recovery deadlock and stale scan timeouts Christopher Griffin via B4 Relay
2026-11-05 18:11 ` [PATCH 1/3] wifi: ath11k: don't hold conf_mutex while waiting for recovery Christopher Griffin via B4 Relay
2026-11-05 18:11 ` Christopher Griffin via B4 Relay [this message]
2026-11-05 18:11 ` [PATCH 3/3] wifi: ath10k: don't arm the scan timeout for a scan that did not start Christopher Griffin via B4 Relay
2026-11-05 20:53   ` Loic Poulain
     [not found]     ` <CAKobHXCMwjAHJOkibPbpDByLZmAKkszZ3WaG6soSDaCEGRQjgA@mail.gmail.com>
2026-11-06  1:47       ` Jeff Johnson

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=20261105-ath-recovery-scan-timeout-v1-2-99a70d89e114@gmail.com \
    --to=devnull+christophergriffin05.gmail.com@kernel.org \
    --cc=ath10k@lists.infradead.org \
    --cc=ath11k@lists.infradead.org \
    --cc=christophergriffin05@gmail.com \
    --cc=jjohnson@kernel.org \
    --cc=john@phrozen.org \
    --cc=kvalo@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=loic.poulain@oss.qualcomm.com \
    --cc=quic_akolli@quicinc.com \
    --cc=quic_gsamin@quicinc.com \
    --cc=quic_haric@quicinc.com \
    --cc=quic_mkenna@quicinc.com \
    --cc=quic_pradeepc@quicinc.com \
    --cc=quic_vnaralas@quicinc.com \
    --cc=quic_wgong@quicinc.com \
    /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

all inboxes | Powered by JetHome®