summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEliad Peller <eliad@wizery.com>2014-08-10 17:00:15 +0300
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>2014-09-03 22:48:49 +0300
commit228670b2e6f8d32f11d27c5165fb42a2c77f062c (patch)
tree0f9865dcf38566288d198ccc6e18124b5e386ce5
parent9ecd051ecd87d0a361c85064e57b27dc825d012e (diff)
downloadlinux-stable-228670b2e6f8d32f11d27c5165fb42a2c77f062c.tar.gz
linux-stable-228670b2e6f8d32f11d27c5165fb42a2c77f062c.tar.bz2
linux-stable-228670b2e6f8d32f11d27c5165fb42a2c77f062c.zip
iwlwifi: mvm: clear d0i3 state on recovery
If recovery happened after mvm entered d0i3 (e.g. due to sysassert when releasing the bus), the mvm->state wasn't cleared properly, causing the ongoing recovery to fail (due to iwl_mvm_ref_sync failure). This in turn fails the ongoing recovery, and triggers a reprobe, which terminates any ongoing wifi activity. Signed-off-by: Eliad Peller <eliadx.peller@intel.com> Reviewed-by: Gregory Greenman <gregory.greenman@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/mac80211.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/iwlwifi/mvm/mac80211.c
index 83c2ce60cdbb..de4ae94f07e0 100644
--- a/drivers/net/wireless/iwlwifi/mvm/mac80211.c
+++ b/drivers/net/wireless/iwlwifi/mvm/mac80211.c
@@ -803,6 +803,9 @@ static void iwl_mvm_restart_cleanup(struct iwl_mvm *mvm)
* ucode_down ref until reconfig is complete */
iwl_mvm_unref_all_except(mvm, IWL_MVM_REF_UCODE_DOWN);
+ /* clear any stale d0i3 state */
+ clear_bit(IWL_MVM_STATUS_IN_D0I3, &mvm->status);
+
mvm->vif_count = 0;
mvm->rx_ba_sessions = 0;
}