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>
This commit is contained in:
Родитель
735a0045f9
Коммит
cd4d23c1ea
|
@ -3047,6 +3047,11 @@ int iwl_mvm_remove_sta_key(struct iwl_mvm *mvm,
|
||||||
|
|
||||||
/* Get the station from the mvm local station table */
|
/* Get the station from the mvm local station table */
|
||||||
mvm_sta = iwl_mvm_get_key_sta(mvm, vif, sta);
|
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",
|
IWL_DEBUG_WEP(mvm, "mvm remove dynamic key: idx=%d sta=%d\n",
|
||||||
keyconf->keyidx, sta_id);
|
keyconf->keyidx, sta_id);
|
||||||
|
@ -3074,8 +3079,6 @@ int iwl_mvm_remove_sta_key(struct iwl_mvm *mvm,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
sta_id = mvm_sta->sta_id;
|
|
||||||
|
|
||||||
ret = __iwl_mvm_remove_sta_key(mvm, sta_id, keyconf, mcast);
|
ret = __iwl_mvm_remove_sta_key(mvm, sta_id, keyconf, mcast);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче