diff options
| -rw-r--r-- | drivers/net/wireless/ath9k/hw.c | 8 | ||||
| -rw-r--r-- | drivers/net/wireless/ath9k/main.c | 6 |
2 files changed, 8 insertions, 6 deletions
diff --git a/drivers/net/wireless/ath9k/hw.c b/drivers/net/wireless/ath9k/hw.c index a17eb130f574..6dbfed0b4149 100644 --- a/drivers/net/wireless/ath9k/hw.c +++ b/drivers/net/wireless/ath9k/hw.c | |||
| @@ -7285,15 +7285,15 @@ ath9k_hw_set_keycache_entry(struct ath_hal *ah, u16 entry, | |||
| 7285 | } | 7285 | } |
| 7286 | break; | 7286 | break; |
| 7287 | case ATH9K_CIPHER_WEP: | 7287 | case ATH9K_CIPHER_WEP: |
| 7288 | if (k->kv_len < 40 / NBBY) { | 7288 | if (k->kv_len < LEN_WEP40) { |
| 7289 | DPRINTF(ah->ah_sc, ATH_DBG_KEYCACHE, | 7289 | DPRINTF(ah->ah_sc, ATH_DBG_KEYCACHE, |
| 7290 | "%s: WEP key length %u too small\n", | 7290 | "%s: WEP key length %u too small\n", |
| 7291 | __func__, k->kv_len); | 7291 | __func__, k->kv_len); |
| 7292 | return false; | 7292 | return false; |
| 7293 | } | 7293 | } |
| 7294 | if (k->kv_len <= 40 / NBBY) | 7294 | if (k->kv_len <= LEN_WEP40) |
| 7295 | keyType = AR_KEYTABLE_TYPE_40; | 7295 | keyType = AR_KEYTABLE_TYPE_40; |
| 7296 | else if (k->kv_len <= 104 / NBBY) | 7296 | else if (k->kv_len <= LEN_WEP104) |
| 7297 | keyType = AR_KEYTABLE_TYPE_104; | 7297 | keyType = AR_KEYTABLE_TYPE_104; |
| 7298 | else | 7298 | else |
| 7299 | keyType = AR_KEYTABLE_TYPE_128; | 7299 | keyType = AR_KEYTABLE_TYPE_128; |
| @@ -7313,7 +7313,7 @@ ath9k_hw_set_keycache_entry(struct ath_hal *ah, u16 entry, | |||
| 7313 | key2 = get_unaligned_le32(k->kv_val + 6) ^ xorMask; | 7313 | key2 = get_unaligned_le32(k->kv_val + 6) ^ xorMask; |
| 7314 | key3 = (get_unaligned_le16(k->kv_val + 10) ^ xorMask) & 0xffff; | 7314 | key3 = (get_unaligned_le16(k->kv_val + 10) ^ xorMask) & 0xffff; |
| 7315 | key4 = get_unaligned_le32(k->kv_val + 12) ^ xorMask; | 7315 | key4 = get_unaligned_le32(k->kv_val + 12) ^ xorMask; |
| 7316 | if (k->kv_len <= 104 / NBBY) | 7316 | if (k->kv_len <= LEN_WEP104) |
| 7317 | key4 &= 0xff; | 7317 | key4 &= 0xff; |
| 7318 | 7318 | ||
| 7319 | if (keyType == AR_KEYTABLE_TYPE_TKIP && ATH9K_IS_MIC_ENABLED(ah)) { | 7319 | if (keyType == AR_KEYTABLE_TYPE_TKIP && ATH9K_IS_MIC_ENABLED(ah)) { |
diff --git a/drivers/net/wireless/ath9k/main.c b/drivers/net/wireless/ath9k/main.c index 2888778040e4..95b337149484 100644 --- a/drivers/net/wireless/ath9k/main.c +++ b/drivers/net/wireless/ath9k/main.c | |||
| @@ -206,7 +206,8 @@ static int ath_key_config(struct ath_softc *sc, | |||
| 206 | if (!ret) | 206 | if (!ret) |
| 207 | return -EIO; | 207 | return -EIO; |
| 208 | 208 | ||
| 209 | sc->sc_keytype = hk.kv_type; | 209 | if (mac) |
| 210 | sc->sc_keytype = hk.kv_type; | ||
| 210 | return 0; | 211 | return 0; |
| 211 | } | 212 | } |
| 212 | 213 | ||
| @@ -756,7 +757,8 @@ static int ath9k_set_key(struct ieee80211_hw *hw, | |||
| 756 | key->hw_key_idx = key->keyidx; | 757 | key->hw_key_idx = key->keyidx; |
| 757 | /* push IV and Michael MIC generation to stack */ | 758 | /* push IV and Michael MIC generation to stack */ |
| 758 | key->flags |= IEEE80211_KEY_FLAG_GENERATE_IV; | 759 | key->flags |= IEEE80211_KEY_FLAG_GENERATE_IV; |
| 759 | key->flags |= IEEE80211_KEY_FLAG_GENERATE_MMIC; | 760 | if (key->alg == ALG_TKIP) |
| 761 | key->flags |= IEEE80211_KEY_FLAG_GENERATE_MMIC; | ||
| 760 | } | 762 | } |
| 761 | break; | 763 | break; |
| 762 | case DISABLE_KEY: | 764 | case DISABLE_KEY: |
