]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
wifi: ath12k: update channel list in worker when wait flag is set
authorKang Yang <kang.yang@oss.qualcomm.com>
Thu, 5 Jun 2025 08:25:28 +0000 (16:25 +0800)
committerJeff Johnson <jeff.johnson@oss.qualcomm.com>
Mon, 23 Jun 2025 14:28:32 +0000 (07:28 -0700)
commit437c7a2db6a34db2a9048920694a2bf9b0169726
tree0e696e24a65a9d2022b0101fe6d00cfb27e9be89
parentacc152f9be205d76771f8156002d55c3fcd21252
wifi: ath12k: update channel list in worker when wait flag is set

With previous patch [1], ath12k_reg_update_chan_list() will be called
during reg_process_self_managed_hint().

reg_process_self_managed_hint() will hold rtnl_lock all the time.
But ath12k_reg_update_chan_list() may increase the occupation time of
rtnl_lock, because when wait flag is set, wait_for_completion_timeout()
will be called during 11d/hw scan.

Should minimize the occupation time of rtnl_lock as much as possible
to avoid interfering with rest of the system. So move the update channel
list operation to a new worker, so that wait_for_completion_timeout()
won't be called with the rtnl_lock held.

Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3

Fixes: f335295aa29c ("wifi: ath12k: avoid deadlock during regulatory update in ath12k_regd_update()") #[1]
Signed-off-by: Kang Yang <kang.yang@oss.qualcomm.com>
Reviewed-by: Aditya Kumar Singh <aditya.kumar.singh@oss.qualcomm.com>
Link: https://patch.msgid.link/20250605082528.701-1-kang.yang@oss.qualcomm.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
drivers/net/wireless/ath/ath12k/core.c
drivers/net/wireless/ath/ath12k/core.h
drivers/net/wireless/ath/ath12k/mac.c
drivers/net/wireless/ath/ath12k/reg.c
drivers/net/wireless/ath/ath12k/reg.h
drivers/net/wireless/ath/ath12k/wmi.h