aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Kazior <michal.kazior@tieto.com>2014-08-22 14:33:18 +0200
committerKalle Valo <kvalo@qca.qualcomm.com>2014-08-25 11:32:28 +0300
commit61e9aab7a1930ae031d1b9d948837b5ffd8e3f5e (patch)
treea6f407a398b62adc14c65edf663baa1f763b8741
parentath10k: remove ar_pci->started (diff)
downloadlinux-dev-61e9aab7a1930ae031d1b9d948837b5ffd8e3f5e.tar.xz
linux-dev-61e9aab7a1930ae031d1b9d948837b5ffd8e3f5e.zip
ath10k: flush hif buffers before recovery
Transport buffers weren't flushed and processed before queueing hw recovery request to mac80211. This could in theory result in an unwanted htt/wmi rx events being processed while mac80211 recovers the device and possibly interfere or even crash the system. Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
-rw-r--r--drivers/net/wireless/ath/ath10k/core.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c
index 23ba32175fcc..157dcf906f29 100644
--- a/drivers/net/wireless/ath/ath10k/core.c
+++ b/drivers/net/wireless/ath/ath10k/core.c
@@ -665,6 +665,7 @@ static void ath10k_core_restart(struct work_struct *work)
switch (ar->state) {
case ATH10K_STATE_ON:
ar->state = ATH10K_STATE_RESTARTING;
+ ath10k_hif_stop(ar);
ath10k_scan_finish(ar);
ieee80211_restart_hw(ar->hw);
break;