Commit c4302c0f authored by Shaul Triebitz's avatar Shaul Triebitz Committed by Johannes Berg

wifi: iwlwifi: mvm: always update keys in D3 exit

If during D3 there was both a GTK rekey and a
disconnection, when waking up, we must first
update the new keys and then disconnect.

The reason is that when disconnecting we first need
to remove the keys.
Trying to remove invalid keys results in firmware
assert.
Signed-off-by: default avatarShaul Triebitz <shaul.triebitz@intel.com>
Signed-off-by: default avatarMiri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240205211151.68cf3974b5d7.Iac9b71a1906ab973aba9baadc9e923b63c0b4945@changeidSigned-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 1b3741ea
...@@ -2100,7 +2100,6 @@ static bool iwl_mvm_setup_connection_keep(struct iwl_mvm *mvm, ...@@ -2100,7 +2100,6 @@ static bool iwl_mvm_setup_connection_keep(struct iwl_mvm *mvm,
.status = status, .status = status,
}; };
int i; int i;
u32 disconnection_reasons = u32 disconnection_reasons =
IWL_WOWLAN_WAKEUP_BY_DISCONNECTION_ON_MISSED_BEACON | IWL_WOWLAN_WAKEUP_BY_DISCONNECTION_ON_MISSED_BEACON |
IWL_WOWLAN_WAKEUP_BY_DISCONNECTION_ON_DEAUTH; IWL_WOWLAN_WAKEUP_BY_DISCONNECTION_ON_DEAUTH;
...@@ -2108,9 +2107,6 @@ static bool iwl_mvm_setup_connection_keep(struct iwl_mvm *mvm, ...@@ -2108,9 +2107,6 @@ static bool iwl_mvm_setup_connection_keep(struct iwl_mvm *mvm,
if (!status || !vif->bss_conf.bssid) if (!status || !vif->bss_conf.bssid)
return false; return false;
if (status->wakeup_reasons & disconnection_reasons)
return false;
if (iwl_mvm_lookup_wowlan_status_ver(mvm) > 6 || if (iwl_mvm_lookup_wowlan_status_ver(mvm) > 6 ||
iwl_fw_lookup_notif_ver(mvm->fw, PROT_OFFLOAD_GROUP, iwl_fw_lookup_notif_ver(mvm->fw, PROT_OFFLOAD_GROUP,
WOWLAN_INFO_NOTIFICATION, WOWLAN_INFO_NOTIFICATION,
...@@ -2171,6 +2167,9 @@ static bool iwl_mvm_setup_connection_keep(struct iwl_mvm *mvm, ...@@ -2171,6 +2167,9 @@ static bool iwl_mvm_setup_connection_keep(struct iwl_mvm *mvm,
mvmvif->seqno = status->non_qos_seq_ctr + 0x10; mvmvif->seqno = status->non_qos_seq_ctr + 0x10;
} }
if (status->wakeup_reasons & disconnection_reasons)
return false;
return true; return true;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment