diff mbox series

ath11k: change management tx queue to avoid connection timed out

Message ID 20220428023320.4007-1-quic_wgong@quicinc.com
State New
Headers show
Series ath11k: change management tx queue to avoid connection timed out | expand

Commit Message

Wen Gong April 28, 2022, 2:33 a.m. UTC
In the phase of wlan load, it has hw scan and 11d scan which sent to
firmware by ath11k, then hw scan and 11d scan will use about 14 seconds,
and meanwhile ath11k_reg_update_chan_list() is running in workqueue of
ath11k_base, and wait for 11d scan/hw scan finished. When the hw scan
finished, mac80211 will start to connect and send management packet,
at this moment, ath11k_reg_update_chan_list() is still waiting for 11d
scan finished, so wmi_mgmt_tx_work of ath11k will not run and thus the
tx management packet also not send out and lead authentication timed
out.

log:
INFO kernel: [  187.885322] wlan0: authenticate with 72:6c:57:43:9f:90
INFO kernel: [  187.937266] wlan0: send auth to 72:6c:57:43:9f:90 (try 1/3)
INFO kernel: [  188.626944] wlan0: send auth to 72:6c:57:43:9f:90 (try 2/3)
INFO kernel: [  189.650999] wlan0: send auth to 72:6c:57:43:9f:90 (try 3/3)
INFO kernel: [  190.651917] wlan0: authentication with 72:6c:57:43:9f:90 timed out

Change wmi_mgmt_tx_work to another queue workqueue_aux of ath11k_base,
then connection success.

Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3

Signed-off-by: Wen Gong <quic_wgong@quicinc.com>
---
 drivers/net/wireless/ath/ath11k/mac.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


base-commit: 3637b73b8e805d011202e2bf10947f2d206695d4

Comments

Kalle Valo May 2, 2022, 1:57 p.m. UTC | #1
Wen Gong <quic_wgong@quicinc.com> wrote:

> In the phase of wlan load, it has hw scan and 11d scan which sent to
> firmware by ath11k, then hw scan and 11d scan will use about 14 seconds,
> and meanwhile ath11k_reg_update_chan_list() is running in workqueue of
> ath11k_base, and wait for 11d scan/hw scan finished. When the hw scan
> finished, mac80211 will start to connect and send management packet,
> at this moment, ath11k_reg_update_chan_list() is still waiting for 11d
> scan finished, so wmi_mgmt_tx_work of ath11k will not run and thus the
> tx management packet also not send out and lead authentication timed
> out.
> 
> log:
> INFO kernel: [  187.885322] wlan0: authenticate with 72:6c:57:43:9f:90
> INFO kernel: [  187.937266] wlan0: send auth to 72:6c:57:43:9f:90 (try 1/3)
> INFO kernel: [  188.626944] wlan0: send auth to 72:6c:57:43:9f:90 (try 2/3)
> INFO kernel: [  189.650999] wlan0: send auth to 72:6c:57:43:9f:90 (try 3/3)
> INFO kernel: [  190.651917] wlan0: authentication with 72:6c:57:43:9f:90 timed out
> 
> Change wmi_mgmt_tx_work to another queue workqueue_aux of ath11k_base,
> then connection success.
> 
> Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3
> 
> Signed-off-by: Wen Gong <quic_wgong@quicinc.com>
> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>

Patch applied to ath-next branch of ath.git, thanks.

3a597f0d425b ath11k: change management tx queue to avoid connection timed out
diff mbox series

Patch

diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c
index da994d89d69d..1957e1713548 100644
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -5600,7 +5600,7 @@  static int ath11k_mac_mgmt_tx(struct ath11k *ar, struct sk_buff *skb,
 
 	skb_queue_tail(q, skb);
 	atomic_inc(&ar->num_pending_mgmt_tx);
-	queue_work(ar->ab->workqueue, &ar->wmi_mgmt_tx_work);
+	queue_work(ar->ab->workqueue_aux, &ar->wmi_mgmt_tx_work);
 
 	return 0;
 }