Currently there are two threads to updating/fetch data of channel list, and there are no synchronization for the data, it leads data out of sync for channel list when doing reg update. So change the call flow to make sure the fetch data running after the update data finished, then data of channel list become synchronization. Note: This patch-set is an old patch-set in public review written by Wen Gong. Just continue sending it for him. Link: https://lore.kernel.org/linux-wireless/20230329091235.19500-1-quic_wgong@xxxxxxxxxxx/ v2: 1. rewrite commit message for patch #1 and #2. 2. use a local list without the spinlock held for patch #2. Wen Gong (2): wifi: ath11k: move update channel list from update reg worker to reg notifier wifi: ath11k: move update channel list to worker for wait flag drivers/net/wireless/ath/ath11k/core.c | 1 + drivers/net/wireless/ath/ath11k/core.h | 4 + drivers/net/wireless/ath/ath11k/mac.c | 15 ++++ drivers/net/wireless/ath/ath11k/reg.c | 110 +++++++++++++++++-------- drivers/net/wireless/ath/ath11k/reg.h | 1 + drivers/net/wireless/ath/ath11k/wmi.h | 1 + 6 files changed, 98 insertions(+), 34 deletions(-) base-commit: 8fb3b2b8d6d489416a7ff8a28cd4083340ad9e55 -- 2.34.1