diff options
author | Lior David <qca_liord@qca.qualcomm.com> | 2016-03-01 19:18:16 +0200 |
---|---|---|
committer | Kalle Valo <kvalo@qca.qualcomm.com> | 2016-03-07 11:43:20 +0200 |
commit | 375a173fc1524eb569c7e8f9cf331126a9d29033 (patch) | |
tree | 44d33af207ebeeaa1635a967d232a3d3eff8df3d /drivers/net/wireless/ath/wil6210/main.c | |
parent | 6777e71ca91ea488488362a919900488e0ade3f2 (diff) | |
download | linux-stable-375a173fc1524eb569c7e8f9cf331126a9d29033.tar.gz linux-stable-375a173fc1524eb569c7e8f9cf331126a9d29033.tar.bz2 linux-stable-375a173fc1524eb569c7e8f9cf331126a9d29033.zip |
wil6210: fix no_fw_recovery mode with change_virtual_intf
When FW crashed with no_fw_recovery mode enabled, user space
could still call wil_cfg80211_change_iface quickly to change
interface type, and this would cause recovery to proceed and
FW crash logs may be lost.
Fix this problem by not resetting the FW in case no_fw_recovery
is enabled.
Signed-off-by: Lior David <qca_liord@qca.qualcomm.com>
Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Diffstat (limited to 'drivers/net/wireless/ath/wil6210/main.c')
-rw-r--r-- | drivers/net/wireless/ath/wil6210/main.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/wil6210/main.c b/drivers/net/wireless/ath/wil6210/main.c index 05a4ae7a7765..c2a0a6625252 100644 --- a/drivers/net/wireless/ath/wil6210/main.c +++ b/drivers/net/wireless/ath/wil6210/main.c @@ -305,6 +305,11 @@ void wil_set_recovery_state(struct wil6210_priv *wil, int state) wake_up_interruptible(&wil->wq); } +bool wil_is_recovery_blocked(struct wil6210_priv *wil) +{ + return no_fw_recovery && (wil->recovery_state == fw_recovery_pending); +} + static void wil_fw_error_worker(struct work_struct *work) { struct wil6210_priv *wil = container_of(work, struct wil6210_priv, |