ath11k: add synchronization operation between reconfigure of mac80211 and ath11k_base
authorWen Gong <quic_wgong@quicinc.com>
Mon, 21 Mar 2022 11:16:57 +0000 (13:16 +0200)
committerKalle Valo <quic_kvalo@quicinc.com>
Wed, 23 Mar 2022 08:56:37 +0000 (10:56 +0200)
commit38194f3a605e4a961f28bc38a73a4f4d43123968
treede9af4c36857242fa1f3f1f8cce234cf310f55dc
parent13da397f884d9c9a3fb6616206eeb6c6ab097287
ath11k: add synchronization operation between reconfigure of mac80211 and ath11k_base

ieee80211_reconfig() of mac80211 is the main function for recovery of
each ieee80211_hw and ath11k, and ath11k_core_reconfigure_on_crash()
is the main function for recovery of ath11k_base, it has more than
one ieee80211_hw and ath11k for each ath11k_base, so it need to add
synchronization between them, otherwise it has many issue.

For example, when ath11k_core_reconfigure_on_crash() is not complete,
mac80211 send a hw scan request to ath11k, it leads firmware crash,
because firmware has not been initialized at that moment, firmware
is only finished downloaded and loaded, it can not receive scan
command.

Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03003-QCAHSPSWPL_V1_V2_SILICONZ_LITE-2

Signed-off-by: Wen Gong <quic_wgong@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20220228064606.8981-3-quic_wgong@quicinc.com
drivers/net/wireless/ath/ath11k/core.c
drivers/net/wireless/ath/ath11k/core.h
drivers/net/wireless/ath/ath11k/mac.c