aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl3945-base.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl3945-base.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl3945-base.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index 2945acd955f0..adcef735180a 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -2860,16 +2860,13 @@ int iwl3945_request_scan(struct iwl_priv *priv, struct ieee80211_vif *vif)
2860 u32 extra; 2860 u32 extra;
2861 u32 suspend_time = 100; 2861 u32 suspend_time = 100;
2862 u32 scan_suspend_time = 100; 2862 u32 scan_suspend_time = 100;
2863 unsigned long flags;
2864 2863
2865 IWL_DEBUG_INFO(priv, "Scanning while associated...\n"); 2864 IWL_DEBUG_INFO(priv, "Scanning while associated...\n");
2866 2865
2867 spin_lock_irqsave(&priv->lock, flags);
2868 if (priv->is_internal_short_scan) 2866 if (priv->is_internal_short_scan)
2869 interval = 0; 2867 interval = 0;
2870 else 2868 else
2871 interval = vif->bss_conf.beacon_int; 2869 interval = vif->bss_conf.beacon_int;
2872 spin_unlock_irqrestore(&priv->lock, flags);
2873 2870
2874 scan->suspend_time = 0; 2871 scan->suspend_time = 0;
2875 scan->max_out_time = cpu_to_le32(200 * 1024); 2872 scan->max_out_time = cpu_to_le32(200 * 1024);
@@ -3286,6 +3283,14 @@ static int iwl3945_mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
3286 return -EOPNOTSUPP; 3283 return -EOPNOTSUPP;
3287 } 3284 }
3288 3285
3286 /*
3287 * To support IBSS RSN, don't program group keys in IBSS, the
3288 * hardware will then not attempt to decrypt the frames.
3289 */
3290 if (vif->type == NL80211_IFTYPE_ADHOC &&
3291 !(key->flags & IEEE80211_KEY_FLAG_PAIRWISE))
3292 return -EOPNOTSUPP;
3293
3289 static_key = !iwl_is_associated(priv, IWL_RXON_CTX_BSS); 3294 static_key = !iwl_is_associated(priv, IWL_RXON_CTX_BSS);
3290 3295
3291 if (!static_key) { 3296 if (!static_key) {
@@ -3915,7 +3920,8 @@ static int iwl3945_setup_mac(struct iwl_priv *priv)
3915 priv->contexts[IWL_RXON_CTX_BSS].interface_modes; 3920 priv->contexts[IWL_RXON_CTX_BSS].interface_modes;
3916 3921
3917 hw->wiphy->flags |= WIPHY_FLAG_CUSTOM_REGULATORY | 3922 hw->wiphy->flags |= WIPHY_FLAG_CUSTOM_REGULATORY |
3918 WIPHY_FLAG_DISABLE_BEACON_HINTS; 3923 WIPHY_FLAG_DISABLE_BEACON_HINTS |
3924 WIPHY_FLAG_IBSS_RSN;
3919 3925
3920 hw->wiphy->max_scan_ssids = PROBE_OPTION_MAX_3945; 3926 hw->wiphy->max_scan_ssids = PROBE_OPTION_MAX_3945;
3921 /* we create the 802.11 header and a zero-length SSID element */ 3927 /* we create the 802.11 header and a zero-length SSID element */