summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ipw2200.c
diff options
context:
space:
mode:
authorHong Liu <hong.liu@intel.com>2005-08-31 18:14:27 +0800
committerJames Ketrenos <jketreno@linux.intel.com>2005-11-07 17:51:34 -0600
commitcdd1fa1e10a2231b5e24bde82550ac499aa5dcc4 (patch)
tree8c2a2ff794bf3e53b350f0ee7e8971f7d96aae32 /drivers/net/wireless/ipw2200.c
parent567deaf6d4a3372cd16b8719741ca3a6157c9615 (diff)
Card with WEP enabled and using shared-key auth will have firmware
error when it tries to auth to a WPA ap. The patch filters out WPA networks if the card is not wpa enabled when selecting network to associate to. Signed-off-by: Hong Liu <hong.liu@intel.com>
Diffstat (limited to 'drivers/net/wireless/ipw2200.c')
-rw-r--r--drivers/net/wireless/ipw2200.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c
index c9b306a8116..e36a1fd9eef 100644
--- a/drivers/net/wireless/ipw2200.c
+++ b/drivers/net/wireless/ipw2200.c
@@ -5510,6 +5510,15 @@ static int ipw_best_network(struct ipw_priv *priv,
return 0;
}
+ if (!priv->ieee->wpa_enabled && (network->wpa_ie_len > 0 ||
+ network->rsn_ie_len > 0)) {
+ IPW_DEBUG_ASSOC("Network '%s (" MAC_FMT ")' excluded "
+ "because of WPA capability mismatch.\n",
+ escape_essid(network->ssid, network->ssid_len),
+ MAC_ARG(network->bssid));
+ return 0;
+ }
+
if ((priv->config & CFG_STATIC_BSSID) &&
memcmp(network->bssid, priv->bssid, ETH_ALEN)) {
IPW_DEBUG_ASSOC("Network '%s (" MAC_FMT ")' excluded "
@@ -6228,6 +6237,7 @@ static int ipw_wpa_enable(struct ipw_priv *priv, int value)
{
/* This is called when wpa_supplicant loads and closes the driver
* interface. */
+ priv->ieee->wpa_enabled = value;
return 0;
}