diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl4965-base.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl4965-base.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c b/drivers/net/wireless/iwlwifi/iwl4965-base.c index dfd2b75492e6..37ab1c565ce1 100644 --- a/drivers/net/wireless/iwlwifi/iwl4965-base.c +++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c | |||
@@ -1214,7 +1214,7 @@ static int iwl4965_set_dynamic_key(struct iwl_priv *priv, | |||
1214 | ret = iwl4965_set_tkip_dynamic_key_info(priv, key, sta_id); | 1214 | ret = iwl4965_set_tkip_dynamic_key_info(priv, key, sta_id); |
1215 | break; | 1215 | break; |
1216 | case ALG_WEP: | 1216 | case ALG_WEP: |
1217 | ret = -EOPNOTSUPP; | 1217 | ret = iwl_set_wep_dynamic_key_info(priv, key, sta_id); |
1218 | break; | 1218 | break; |
1219 | default: | 1219 | default: |
1220 | IWL_ERROR("Unknown alg: %s alg = %d\n", __func__, key->alg); | 1220 | IWL_ERROR("Unknown alg: %s alg = %d\n", __func__, key->alg); |
@@ -2138,7 +2138,12 @@ static void iwl4965_build_tx_cmd_hwcrypto(struct iwl_priv *priv, | |||
2138 | if (wepkey->key_size == WEP_KEY_LEN_128) | 2138 | if (wepkey->key_size == WEP_KEY_LEN_128) |
2139 | cmd->cmd.tx.sec_ctl |= TX_CMD_SEC_KEY128; | 2139 | cmd->cmd.tx.sec_ctl |= TX_CMD_SEC_KEY128; |
2140 | } else { | 2140 | } else { |
2141 | IWL_ERROR("No support for WEP key mappings key\n"); | 2141 | /* the WEP key was sent as dynamic */ |
2142 | keyidx = keyinfo->keyidx; | ||
2143 | memcpy(&cmd->cmd.tx.key[3], keyinfo->key, | ||
2144 | keyinfo->keylen); | ||
2145 | if (keyinfo->keylen == WEP_KEY_LEN_128) | ||
2146 | cmd->cmd.tx.sec_ctl |= TX_CMD_SEC_KEY128; | ||
2142 | } | 2147 | } |
2143 | 2148 | ||
2144 | cmd->cmd.tx.sec_ctl |= (TX_CMD_SEC_WEP | | 2149 | cmd->cmd.tx.sec_ctl |= (TX_CMD_SEC_WEP | |