diff options
| -rw-r--r-- | drivers/net/wireless/ath/ath9k/main.c | 28 | ||||
| -rw-r--r-- | include/net/mac80211.h | 1 | ||||
| -rw-r--r-- | net/mac80211/key.c | 1 |
3 files changed, 3 insertions, 27 deletions
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c index 893b552981a0..abfa0493236f 100644 --- a/drivers/net/wireless/ath/ath9k/main.c +++ b/drivers/net/wireless/ath/ath9k/main.c | |||
| @@ -752,7 +752,6 @@ static int ath_key_config(struct ath_common *common, | |||
| 752 | struct ath_hw *ah = common->ah; | 752 | struct ath_hw *ah = common->ah; |
| 753 | struct ath9k_keyval hk; | 753 | struct ath9k_keyval hk; |
| 754 | const u8 *mac = NULL; | 754 | const u8 *mac = NULL; |
| 755 | u8 gmac[ETH_ALEN]; | ||
| 756 | int ret = 0; | 755 | int ret = 0; |
| 757 | int idx; | 756 | int idx; |
| 758 | 757 | ||
| @@ -776,30 +775,9 @@ static int ath_key_config(struct ath_common *common, | |||
| 776 | memcpy(hk.kv_val, key->key, key->keylen); | 775 | memcpy(hk.kv_val, key->key, key->keylen); |
| 777 | 776 | ||
| 778 | if (!(key->flags & IEEE80211_KEY_FLAG_PAIRWISE)) { | 777 | if (!(key->flags & IEEE80211_KEY_FLAG_PAIRWISE)) { |
| 779 | 778 | /* For now, use the default keys for broadcast keys. This may | |
| 780 | if (key->ap_addr) { | 779 | * need to change with virtual interfaces. */ |
| 781 | /* | 780 | idx = key->keyidx; |
| 782 | * Group keys on hardware that supports multicast frame | ||
| 783 | * key search use a mac that is the sender's address with | ||
| 784 | * the high bit set instead of the app-specified address. | ||
| 785 | */ | ||
| 786 | memcpy(gmac, key->ap_addr, ETH_ALEN); | ||
| 787 | gmac[0] |= 0x80; | ||
| 788 | mac = gmac; | ||
| 789 | |||
| 790 | if (key->alg == ALG_TKIP) | ||
| 791 | idx = ath_reserve_key_cache_slot_tkip(common); | ||
| 792 | else | ||
| 793 | idx = ath_reserve_key_cache_slot(common); | ||
| 794 | if (idx < 0) | ||
| 795 | mac = NULL; /* no free key cache entries */ | ||
| 796 | } | ||
| 797 | |||
| 798 | if (!mac) { | ||
| 799 | /* For now, use the default keys for broadcast keys. This may | ||
| 800 | * need to change with virtual interfaces. */ | ||
| 801 | idx = key->keyidx; | ||
| 802 | } | ||
| 803 | } else if (key->keyidx) { | 781 | } else if (key->keyidx) { |
| 804 | if (WARN_ON(!sta)) | 782 | if (WARN_ON(!sta)) |
| 805 | return -EOPNOTSUPP; | 783 | return -EOPNOTSUPP; |
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index 5be900d19660..e24b0363e6cb 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
| @@ -831,7 +831,6 @@ struct ieee80211_key_conf { | |||
| 831 | u8 iv_len; | 831 | u8 iv_len; |
| 832 | u8 hw_key_idx; | 832 | u8 hw_key_idx; |
| 833 | u8 flags; | 833 | u8 flags; |
| 834 | u8 *ap_addr; | ||
| 835 | s8 keyidx; | 834 | s8 keyidx; |
| 836 | u8 keylen; | 835 | u8 keylen; |
| 837 | u8 key[0]; | 836 | u8 key[0]; |
diff --git a/net/mac80211/key.c b/net/mac80211/key.c index 8d4b41787dcf..e8f6e3b252d8 100644 --- a/net/mac80211/key.c +++ b/net/mac80211/key.c | |||
| @@ -140,7 +140,6 @@ static void ieee80211_key_enable_hw_accel(struct ieee80211_key *key) | |||
| 140 | struct ieee80211_sub_if_data, | 140 | struct ieee80211_sub_if_data, |
| 141 | u.ap); | 141 | u.ap); |
| 142 | 142 | ||
| 143 | key->conf.ap_addr = sdata->dev->dev_addr; | ||
| 144 | ret = drv_set_key(key->local, SET_KEY, sdata, sta, &key->conf); | 143 | ret = drv_set_key(key->local, SET_KEY, sdata, sta, &key->conf); |
| 145 | 144 | ||
| 146 | if (!ret) { | 145 | if (!ret) { |
