Skip to content

Commit ac0c6fd

Browse files
yedidyaBenshjmberg-intel
authored andcommitted
wifi: iwlwifi: mvm: update IGTK in mvmvif upon D3 resume
During the D3 resume flow, all new rekeys are passed from the FW. Because the FW supports only one IGTK at a time, every IGTK rekey update should be done by removing the last IGTK. The mvmvif holds a pointer to the last IGTK for that reason and thus should be updated when a new IGTK is passed upon resume. Fixes: 04f78e2 ("wifi: iwlwifi: mvm: Add support for IGTK in D3 resume flow") Signed-off-by: Yedidya Benshimol <[email protected]> Signed-off-by: Gregory Greenman <[email protected]> Link: https://lore.kernel.org/r/20231017115047.8ceaf7e5ece7.Ief444f6a2703ed76648b4d414f12bb4130bab36e@changeid Signed-off-by: Johannes Berg <[email protected]>
1 parent ff8e3a4 commit ac0c6fd

File tree

1 file changed

+10
-0
lines changed
  • drivers/net/wireless/intel/iwlwifi/mvm

1 file changed

+10
-0
lines changed

drivers/net/wireless/intel/iwlwifi/mvm/d3.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2031,6 +2031,16 @@ iwl_mvm_d3_igtk_bigtk_rekey_add(struct iwl_wowlan_status_data *status,
20312031
if (IS_ERR(key_config))
20322032
return false;
20332033
ieee80211_set_key_rx_seq(key_config, 0, &seq);
2034+
2035+
if (key_config->keyidx == 4 || key_config->keyidx == 5) {
2036+
struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
2037+
int link_id = vif->active_links ? __ffs(vif->active_links) : 0;
2038+
struct iwl_mvm_vif_link_info *mvm_link =
2039+
mvmvif->link[link_id];
2040+
2041+
mvm_link->igtk = key_config;
2042+
}
2043+
20342044
return true;
20352045
}
20362046

0 commit comments

Comments
 (0)