diff options
author | Avraham Stern <avraham.stern@intel.com> | 2018-03-06 14:10:49 +0200 |
---|---|---|
committer | Luca Coelho <luciano.coelho@intel.com> | 2018-03-19 10:50:37 +0200 |
commit | df65c8d1728adee2a52c30287d33da83a8c87480 (patch) | |
tree | b0d38f01b4b9f04111aef7c7897e2fd4dc90b239 /drivers | |
parent | 4b387906b1c3692bb790388c335515c0cf098a23 (diff) | |
download | linux-stable-df65c8d1728adee2a52c30287d33da83a8c87480.tar.gz linux-stable-df65c8d1728adee2a52c30287d33da83a8c87480.tar.bz2 linux-stable-df65c8d1728adee2a52c30287d33da83a8c87480.zip |
iwlwifi: mvm: make sure internal station has a valid id
If the driver failed to resume from D3, it is possible that it has
no valid aux station. In such case, fw restart will end up in sending
station related commands with an invalid station id, which will
result in an assert.
Fix this by allocating a new station id for the aux station if it
does not have a valid id even in the case of fw restart.
Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c index 0b3a780aee12..fc13f6291c06 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c @@ -1695,7 +1695,8 @@ int iwl_mvm_allocate_int_sta(struct iwl_mvm *mvm, u32 qmask, enum nl80211_iftype iftype, enum iwl_sta_type type) { - if (!test_bit(IWL_MVM_STATUS_IN_HW_RESTART, &mvm->status)) { + if (!test_bit(IWL_MVM_STATUS_IN_HW_RESTART, &mvm->status) || + sta->sta_id == IWL_MVM_INVALID_STA) { sta->sta_id = iwl_mvm_find_free_sta_id(mvm, iftype); if (WARN_ON_ONCE(sta->sta_id == IWL_MVM_INVALID_STA)) return -ENOSPC; |