mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-04 16:15:11 +00:00
iwlwifi: mvm: fix TX of CCMP 256
[ Upstream commit de04d4fbf8
]
We don't have enough room in the TX command for a CCMP 256
key, and need to use key from table.
Fixes: 3264bf032bd9 ("[BUGFIX] iwlwifi: mvm: Fix CCMP IV setting")
Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
ec12bb57cd
commit
57a85742bb
1 changed files with 5 additions and 2 deletions
|
@ -406,11 +406,11 @@ static void iwl_mvm_set_tx_cmd_crypto(struct iwl_mvm *mvm,
|
|||
{
|
||||
struct ieee80211_key_conf *keyconf = info->control.hw_key;
|
||||
u8 *crypto_hdr = skb_frag->data + hdrlen;
|
||||
enum iwl_tx_cmd_sec_ctrl type = TX_CMD_SEC_CCM;
|
||||
u64 pn;
|
||||
|
||||
switch (keyconf->cipher) {
|
||||
case WLAN_CIPHER_SUITE_CCMP:
|
||||
case WLAN_CIPHER_SUITE_CCMP_256:
|
||||
iwl_mvm_set_tx_cmd_ccmp(info, tx_cmd);
|
||||
iwl_mvm_set_tx_cmd_pn(info, crypto_hdr);
|
||||
break;
|
||||
|
@ -434,13 +434,16 @@ static void iwl_mvm_set_tx_cmd_crypto(struct iwl_mvm *mvm,
|
|||
break;
|
||||
case WLAN_CIPHER_SUITE_GCMP:
|
||||
case WLAN_CIPHER_SUITE_GCMP_256:
|
||||
type = TX_CMD_SEC_GCMP;
|
||||
/* Fall through */
|
||||
case WLAN_CIPHER_SUITE_CCMP_256:
|
||||
/* TODO: Taking the key from the table might introduce a race
|
||||
* when PTK rekeying is done, having an old packets with a PN
|
||||
* based on the old key but the message encrypted with a new
|
||||
* one.
|
||||
* Need to handle this.
|
||||
*/
|
||||
tx_cmd->sec_ctl |= TX_CMD_SEC_GCMP | TX_CMD_SEC_KEY_FROM_TABLE;
|
||||
tx_cmd->sec_ctl |= type | TX_CMD_SEC_KEY_FROM_TABLE;
|
||||
tx_cmd->key[0] = keyconf->hw_key_idx;
|
||||
iwl_mvm_set_tx_cmd_pn(info, crypto_hdr);
|
||||
break;
|
||||
|
|
Loading…
Reference in a new issue