Commit beda278d authored by Zhu Yi's avatar Zhu Yi Committed by John W. Linville

iwmc3200wifi: set WEP key static flag correctly

We should only set the static_key flag for open and legacy
authentication types. It should not be set for 802.1X and TKIP.
Signed-off-by: default avatarZhu Yi <yi.zhu@intel.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 554503f8
...@@ -596,6 +596,8 @@ int iwm_set_key(struct iwm_priv *iwm, bool remove, struct iwm_key *key) ...@@ -596,6 +596,8 @@ int iwm_set_key(struct iwm_priv *iwm, bool remove, struct iwm_key *key)
key_idx = key->hdr.key_idx; key_idx = key->hdr.key_idx;
if (!remove) { if (!remove) {
u8 auth_type = iwm->umac_profile->sec.auth_type;
IWM_DBG_WEXT(iwm, DBG, "key_idx:%d\n", key_idx); IWM_DBG_WEXT(iwm, DBG, "key_idx:%d\n", key_idx);
IWM_DBG_WEXT(iwm, DBG, "key_len:%d\n", key_len); IWM_DBG_WEXT(iwm, DBG, "key_len:%d\n", key_len);
IWM_DBG_WEXT(iwm, DBG, "MAC:%pM, idx:%d, multicast:%d\n", IWM_DBG_WEXT(iwm, DBG, "MAC:%pM, idx:%d, multicast:%d\n",
...@@ -618,7 +620,9 @@ int iwm_set_key(struct iwm_priv *iwm, bool remove, struct iwm_key *key) ...@@ -618,7 +620,9 @@ int iwm_set_key(struct iwm_priv *iwm, bool remove, struct iwm_key *key)
memcpy(&wep40->key_hdr, key_hdr, memcpy(&wep40->key_hdr, key_hdr,
sizeof(struct iwm_umac_key_hdr)); sizeof(struct iwm_umac_key_hdr));
memcpy(wep40->key, key_data, key_len); memcpy(wep40->key, key_data, key_len);
wep40->static_key = 1; wep40->static_key =
!!((auth_type != UMAC_AUTH_TYPE_8021X) &&
(auth_type != UMAC_AUTH_TYPE_RSNA_PSK));
cmd_size = sizeof(struct iwm_umac_key_wep40); cmd_size = sizeof(struct iwm_umac_key_wep40);
break; break;
...@@ -632,7 +636,9 @@ int iwm_set_key(struct iwm_priv *iwm, bool remove, struct iwm_key *key) ...@@ -632,7 +636,9 @@ int iwm_set_key(struct iwm_priv *iwm, bool remove, struct iwm_key *key)
memcpy(&wep104->key_hdr, key_hdr, memcpy(&wep104->key_hdr, key_hdr,
sizeof(struct iwm_umac_key_hdr)); sizeof(struct iwm_umac_key_hdr));
memcpy(wep104->key, key_data, key_len); memcpy(wep104->key, key_data, key_len);
wep104->static_key = 1; wep104->static_key =
!!((auth_type != UMAC_AUTH_TYPE_8021X) &&
(auth_type != UMAC_AUTH_TYPE_RSNA_PSK));
cmd_size = sizeof(struct iwm_umac_key_wep104); cmd_size = sizeof(struct iwm_umac_key_wep104);
break; break;
......
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