aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-agn-sta.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-agn-sta.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-sta.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-sta.c b/drivers/net/wireless/iwlwifi/iwl-agn-sta.c
index d6aab00272b9..f1298cd6a19a 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-sta.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-sta.c
@@ -1190,6 +1190,7 @@ int iwl_remove_dynamic_key(struct iwl_priv *priv,
1190 unsigned long flags; 1190 unsigned long flags;
1191 struct iwl_addsta_cmd sta_cmd; 1191 struct iwl_addsta_cmd sta_cmd;
1192 u8 sta_id = iwlagn_key_sta_id(priv, ctx->vif, sta); 1192 u8 sta_id = iwlagn_key_sta_id(priv, ctx->vif, sta);
1193 __le16 key_flags;
1193 1194
1194 /* if station isn't there, neither is the key */ 1195 /* if station isn't there, neither is the key */
1195 if (sta_id == IWL_INVALID_STATION) 1196 if (sta_id == IWL_INVALID_STATION)
@@ -1215,7 +1216,14 @@ int iwl_remove_dynamic_key(struct iwl_priv *priv,
1215 IWL_ERR(priv, "offset %d not used in uCode key table.\n", 1216 IWL_ERR(priv, "offset %d not used in uCode key table.\n",
1216 keyconf->hw_key_idx); 1217 keyconf->hw_key_idx);
1217 1218
1218 sta_cmd.key.key_flags = STA_KEY_FLG_NO_ENC | STA_KEY_FLG_INVALID; 1219 key_flags = cpu_to_le16(keyconf->keyidx << STA_KEY_FLG_KEYID_POS);
1220 key_flags |= STA_KEY_FLG_MAP_KEY_MSK | STA_KEY_FLG_NO_ENC |
1221 STA_KEY_FLG_INVALID;
1222
1223 if (!(keyconf->flags & IEEE80211_KEY_FLAG_PAIRWISE))
1224 key_flags |= STA_KEY_MULTICAST_MSK;
1225
1226 sta_cmd.key.key_flags = key_flags;
1219 sta_cmd.key.key_offset = WEP_INVALID_OFFSET; 1227 sta_cmd.key.key_offset = WEP_INVALID_OFFSET;
1220 sta_cmd.sta.modify_mask = STA_MODIFY_KEY_MASK; 1228 sta_cmd.sta.modify_mask = STA_MODIFY_KEY_MASK;
1221 sta_cmd.mode = STA_CONTROL_MODIFY_MSK; 1229 sta_cmd.mode = STA_CONTROL_MODIFY_MSK;