Wen Gong <[email protected]> wrote:
> Sometimes device recovery fail with this operation.
> Run test command for many times:
> echo assert > /sys/kernel/debug/ath12k/wcn7850\ hw2.0_0000\:03\:00.0/simulate_fw_crash
>
> While recovery start, ath12k_core_post_reconfigure_recovery() will
> call ieee80211_restart_hw(), and the restart_work which queued by
> ieee80211_restart_hw() is running in another thread, it will call
> into ath12k_mac_op_start() and ath12k_mac_wait_reconfigure(), and
> the variables ab->recovery_start_count and ab->recovery_start is used
> in ath12k_mac_wait_reconfigure(), so ath12k need to initialize the
> variables before queue the restart_work, otherwise ath12k_mac_wait_reconfigure()
> maybe use the un-initialized variables. Change to initialize the 2
> variables earlier and then recovery process become correct.
>
> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4
>
> Signed-off-by: Wen Gong <[email protected]>
> Signed-off-by: Kalle Valo <[email protected]>
Patch applied to ath-next branch of ath.git, thanks.
41e7a399aea1 wifi: ath12k: change to initialize recovery variables earlier in ath12k_core_reset()
--
https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches