diff options
Diffstat (limited to 'drivers/net/wireless/iwlegacy/4965-mac.c')
-rw-r--r-- | drivers/net/wireless/iwlegacy/4965-mac.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/net/wireless/iwlegacy/4965-mac.c b/drivers/net/wireless/iwlegacy/4965-mac.c index f2baf94f069c..d24eaf89ffb5 100644 --- a/drivers/net/wireless/iwlegacy/4965-mac.c +++ b/drivers/net/wireless/iwlegacy/4965-mac.c | |||
@@ -2565,7 +2565,7 @@ il4965_find_station(struct il_priv *il, const u8 *addr) | |||
2565 | spin_lock_irqsave(&il->sta_lock, flags); | 2565 | spin_lock_irqsave(&il->sta_lock, flags); |
2566 | for (i = start; i < il->hw_params.max_stations; i++) | 2566 | for (i = start; i < il->hw_params.max_stations; i++) |
2567 | if (il->stations[i].used && | 2567 | if (il->stations[i].used && |
2568 | (!compare_ether_addr(il->stations[i].sta.sta.addr, addr))) { | 2568 | ether_addr_equal(il->stations[i].sta.sta.addr, addr)) { |
2569 | ret = i; | 2569 | ret = i; |
2570 | goto out; | 2570 | goto out; |
2571 | } | 2571 | } |
@@ -5724,7 +5724,8 @@ il4965_mac_setup_register(struct il_priv *il, u32 max_probe_length) | |||
5724 | BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_ADHOC); | 5724 | BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_ADHOC); |
5725 | 5725 | ||
5726 | hw->wiphy->flags |= | 5726 | hw->wiphy->flags |= |
5727 | WIPHY_FLAG_CUSTOM_REGULATORY | WIPHY_FLAG_DISABLE_BEACON_HINTS; | 5727 | WIPHY_FLAG_CUSTOM_REGULATORY | WIPHY_FLAG_DISABLE_BEACON_HINTS | |
5728 | WIPHY_FLAG_IBSS_RSN; | ||
5728 | 5729 | ||
5729 | /* | 5730 | /* |
5730 | * For now, disable PS by default because it affects | 5731 | * For now, disable PS by default because it affects |
@@ -5873,6 +5874,16 @@ il4965_mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, | |||
5873 | return -EOPNOTSUPP; | 5874 | return -EOPNOTSUPP; |
5874 | } | 5875 | } |
5875 | 5876 | ||
5877 | /* | ||
5878 | * To support IBSS RSN, don't program group keys in IBSS, the | ||
5879 | * hardware will then not attempt to decrypt the frames. | ||
5880 | */ | ||
5881 | if (vif->type == NL80211_IFTYPE_ADHOC && | ||
5882 | !(key->flags & IEEE80211_KEY_FLAG_PAIRWISE)) { | ||
5883 | D_MAC80211("leave - ad-hoc group key\n"); | ||
5884 | return -EOPNOTSUPP; | ||
5885 | } | ||
5886 | |||
5876 | sta_id = il_sta_id_or_broadcast(il, sta); | 5887 | sta_id = il_sta_id_or_broadcast(il, sta); |
5877 | if (sta_id == IL_INVALID_STATION) | 5888 | if (sta_id == IL_INVALID_STATION) |
5878 | return -EINVAL; | 5889 | return -EINVAL; |