Wen Gong <wgong@xxxxxxxxxxxxxx> wrote: > When it has more than one restart_work queued meanwhile, the 2nd > restart_work is very easy to break the 1st restart work and lead > recovery fail. > > Add a flag to allow only one restart work running untill > device successfully recovered. > > It already has flag ATH10K_FLAG_CRASH_FLUSH, but it can not use this > flag again, because it is clear in ath10k_core_start. The function > ieee80211_reconfig(called by ieee80211_restart_work) of mac80211 do > many things and drv_start(call to ath10k_core_start) is 1st thing, > when drv_start complete, it does not mean restart complete. So it > add new flag and clear it in ath10k_reconfig_complete, because it > is the last thing called from drv_reconfig_complete of function > ieee80211_reconfig, after it, the restart process finished. > > Tested-on: QCA6174 hw3.2 SDIO WLAN.RMH.4.4.1-00049 > > Signed-off-by: Wen Gong <wgong@xxxxxxxxxxxxxx> > Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx> Patch applied to ath-next branch of ath.git, thanks. 5dadbe4e3718 ath10k: add atomic protection for device recovery -- https://patchwork.kernel.org/project/linux-wireless/patch/010101746bead6a0-d5e97c66-dedd-4b92-810e-c2e4840fafc9-000000@xxxxxxxxxxxxxxxxxxxxxxx/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches