diff options
author | Ilan Peer <ilan.peer@intel.com> | 2017-01-16 14:07:03 +0100 |
---|---|---|
committer | Luca Coelho <luciano.coelho@intel.com> | 2017-02-08 16:54:23 +0100 |
commit | cd4d23c1ea9bb3769f2859b3b7b9ef24355bcba4 (patch) | |
tree | a676262d0aa066076814296d5bdf9b3d88d66d73 | |
parent | iwlwifi: mvm: avoid race condition in ADD_STA. (diff) | |
download | linux-cd4d23c1ea9bb3769f2859b3b7b9ef24355bcba4.tar.xz linux-cd4d23c1ea9bb3769f2859b3b7b9ef24355bcba4.zip |
iwlwifi: mvm: Fix removal of IGTK
When removing an IGTK, iwl_mvm_send_sta_igtk() was
called before station ID was retrieved, so the function
was invoked with an invalid station ID. Fix this by first
getting the station ID.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=192411
Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c index 1bad933b3ad4..c35fabdf85da 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c @@ -3047,6 +3047,11 @@ int iwl_mvm_remove_sta_key(struct iwl_mvm *mvm, /* Get the station from the mvm local station table */ mvm_sta = iwl_mvm_get_key_sta(mvm, vif, sta); + if (!mvm_sta) { + IWL_ERR(mvm, "Failed to find station\n"); + return -EINVAL; + } + sta_id = mvm_sta->sta_id; IWL_DEBUG_WEP(mvm, "mvm remove dynamic key: idx=%d sta=%d\n", keyconf->keyidx, sta_id); @@ -3074,8 +3079,6 @@ int iwl_mvm_remove_sta_key(struct iwl_mvm *mvm, return 0; } - sta_id = mvm_sta->sta_id; - ret = __iwl_mvm_remove_sta_key(mvm, sta_id, keyconf, mcast); if (ret) return ret; |