Removed legacy WIRELESS_EXT checks from ipw2200.c

Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c
index b89ede1..8e17308 100644
--- a/drivers/net/wireless/ipw2200.c
+++ b/drivers/net/wireless/ipw2200.c
@@ -6159,70 +6159,6 @@
 	up(&priv->sem);
 }
 
-#if WIRELESS_EXT < 18
-/* Support for wpa_supplicant before WE-18, deprecated. */
-
-/* following definitions must match definitions in driver_ipw.c */
-
-#define IPW_IOCTL_WPA_SUPPLICANT		SIOCIWFIRSTPRIV+30
-
-#define IPW_CMD_SET_WPA_PARAM			1
-#define	IPW_CMD_SET_WPA_IE			2
-#define IPW_CMD_SET_ENCRYPTION			3
-#define IPW_CMD_MLME				4
-
-#define IPW_PARAM_WPA_ENABLED			1
-#define IPW_PARAM_TKIP_COUNTERMEASURES		2
-#define IPW_PARAM_DROP_UNENCRYPTED		3
-#define IPW_PARAM_PRIVACY_INVOKED		4
-#define IPW_PARAM_AUTH_ALGS			5
-#define IPW_PARAM_IEEE_802_1X			6
-
-#define IPW_MLME_STA_DEAUTH			1
-#define IPW_MLME_STA_DISASSOC			2
-
-#define IPW_CRYPT_ERR_UNKNOWN_ALG		2
-#define IPW_CRYPT_ERR_UNKNOWN_ADDR		3
-#define IPW_CRYPT_ERR_CRYPT_INIT_FAILED		4
-#define IPW_CRYPT_ERR_KEY_SET_FAILED		5
-#define IPW_CRYPT_ERR_TX_KEY_SET_FAILED		6
-#define IPW_CRYPT_ERR_CARD_CONF_FAILED		7
-
-#define	IPW_CRYPT_ALG_NAME_LEN			16
-
-struct ipw_param {
-	u32 cmd;
-	u8 sta_addr[ETH_ALEN];
-	union {
-		struct {
-			u8 name;
-			u32 value;
-		} wpa_param;
-		struct {
-			u32 len;
-			u8 reserved[32];
-			u8 data[0];
-		} wpa_ie;
-		struct {
-			u32 command;
-			u32 reason_code;
-		} mlme;
-		struct {
-			u8 alg[IPW_CRYPT_ALG_NAME_LEN];
-			u8 set_tx;
-			u32 err;
-			u8 idx;
-			u8 seq[8];	/* sequence counter (set: RX, get: TX) */
-			u16 key_len;
-			u8 key[0];
-		} crypt;
-
-	} u;
-};
-
-/* end of driver_ipw.c code */
-#endif
-
 static int ipw_wpa_enable(struct ipw_priv *priv, int value)
 {
 	/* This is called when wpa_supplicant loads and closes the driver
@@ -6231,11 +6167,6 @@
 	return 0;
 }
 
-#if WIRELESS_EXT < 18
-#define IW_AUTH_ALG_OPEN_SYSTEM			0x1
-#define IW_AUTH_ALG_SHARED_KEY			0x2
-#endif
-
 static int ipw_wpa_set_auth_algs(struct ipw_priv *priv, int value)
 {
 	struct ieee80211_device *ieee = priv->ieee;
@@ -6283,416 +6214,6 @@
 	return ipw_send_cmd(priv, &cmd);
 }
 
-#if WIRELESS_EXT < 18
-static int ipw_wpa_set_param(struct net_device *dev, u8 name, u32 value)
-{
-	struct ipw_priv *priv = ieee80211_priv(dev);
-	struct ieee80211_crypt_data *crypt;
-	unsigned long flags;
-	int ret = 0;
-
-	switch (name) {
-	case IPW_PARAM_WPA_ENABLED:
-		ret = ipw_wpa_enable(priv, value);
-		break;
-
-	case IPW_PARAM_TKIP_COUNTERMEASURES:
-		crypt = priv->ieee->crypt[priv->ieee->tx_keyidx];
-		if (!crypt || !crypt->ops->set_flags || !crypt->ops->get_flags) {
-			IPW_WARNING("Can't set TKIP countermeasures: "
-				    "crypt not set!\n");
-			break;
-		}
-
-		flags = crypt->ops->get_flags(crypt->priv);
-
-		if (value)
-			flags |= IEEE80211_CRYPTO_TKIP_COUNTERMEASURES;
-		else
-			flags &= ~IEEE80211_CRYPTO_TKIP_COUNTERMEASURES;
-
-		crypt->ops->set_flags(flags, crypt->priv);
-
-		break;
-
-	case IPW_PARAM_DROP_UNENCRYPTED:{
-			/* HACK:
-			 *
-			 * wpa_supplicant calls set_wpa_enabled when the driver
-			 * is loaded and unloaded, regardless of if WPA is being
-			 * used.  No other calls are made which can be used to
-			 * determine if encryption will be used or not prior to
-			 * association being expected.  If encryption is not being
-			 * used, drop_unencrypted is set to false, else true -- we
-			 * can use this to determine if the CAP_PRIVACY_ON bit should
-			 * be set.
-			 */
-			struct ieee80211_security sec = {
-				.flags = SEC_ENABLED,
-				.enabled = value,
-			};
-			priv->ieee->drop_unencrypted = value;
-			/* We only change SEC_LEVEL for open mode. Others
-			 * are set by ipw_wpa_set_encryption.
-			 */
-			if (!value) {
-				sec.flags |= SEC_LEVEL;
-				sec.level = SEC_LEVEL_0;
-			} else {
-				sec.flags |= SEC_LEVEL;
-				sec.level = SEC_LEVEL_1;
-			}
-			if (priv->ieee->set_security)
-				priv->ieee->set_security(priv->ieee->dev, &sec);
-			break;
-		}
-
-	case IPW_PARAM_PRIVACY_INVOKED:
-		priv->ieee->privacy_invoked = value;
-		break;
-
-	case IPW_PARAM_AUTH_ALGS:
-		ret = ipw_wpa_set_auth_algs(priv, value);
-		break;
-
-	case IPW_PARAM_IEEE_802_1X:
-		priv->ieee->ieee802_1x = value;
-		break;
-
-	default:
-		IPW_ERROR("%s: Unknown WPA param: %d\n", dev->name, name);
-		ret = -EOPNOTSUPP;
-	}
-
-	return ret;
-}
-
-static int ipw_wpa_mlme(struct net_device *dev, int command, int reason)
-{
-	struct ipw_priv *priv = ieee80211_priv(dev);
-	int ret = 0;
-
-	switch (command) {
-	case IPW_MLME_STA_DEAUTH:
-		// silently ignore
-		break;
-
-	case IPW_MLME_STA_DISASSOC:
-		ipw_disassociate(priv);
-		break;
-
-	default:
-		IPW_ERROR("%s: Unknown MLME request: %d\n", dev->name, command);
-		ret = -EOPNOTSUPP;
-	}
-
-	return ret;
-}
-
-static int ipw_wpa_ie_cipher2level(u8 cipher)
-{
-	switch (cipher) {
-	case 4:		/* CCMP */
-		return SEC_LEVEL_3;
-	case 2:		/* TKIP */
-		return SEC_LEVEL_2;
-	case 5:		/* WEP104 */
-	case 1:		/* WEP40 */
-		return SEC_LEVEL_1;
-	case 0:		/* NONE */
-		return SEC_LEVEL_0;
-	default:
-		return -1;
-	}
-}
-
-static int ipw_wpa_set_wpa_ie(struct net_device *dev,
-			      struct ipw_param *param, int plen)
-{
-	struct ipw_priv *priv = ieee80211_priv(dev);
-	struct ieee80211_device *ieee = priv->ieee;
-	u8 *buf;
-	u8 *ptk, *gtk;
-	int level;
-
-	if (param->u.wpa_ie.len > MAX_WPA_IE_LEN ||
-	    (param->u.wpa_ie.len && param->u.wpa_ie.data == NULL))
-		return -EINVAL;
-
-	if (param->u.wpa_ie.len) {
-		buf = kmalloc(param->u.wpa_ie.len, GFP_KERNEL);
-		if (buf == NULL)
-			return -ENOMEM;
-
-		memcpy(buf, param->u.wpa_ie.data, param->u.wpa_ie.len);
-		kfree(ieee->wpa_ie);
-		ieee->wpa_ie = buf;
-		ieee->wpa_ie_len = param->u.wpa_ie.len;
-	} else {
-		kfree(ieee->wpa_ie);
-		ieee->wpa_ie = NULL;
-		ieee->wpa_ie_len = 0;
-		goto done;
-	}
-
-	if (priv->ieee->host_encrypt)
-		goto done;
-
-	/* HACK: Parse wpa_ie here to get pairwise suite, otherwise
-	 * we need to change driver_ipw.c from wpa_supplicant. This
-	 * is OK since -Dipw is deprecated. The -Dwext driver has a
-	 * clean way to handle this. */
-	gtk = ptk = (u8 *) ieee->wpa_ie;
-	if (ieee->wpa_ie[0] == 0x30) {	/* RSN IE */
-		gtk += 4 + 3;
-		ptk += 4 + 4 + 2 + 3;
-	} else {		/* WPA IE */
-		gtk += 8 + 3;
-		ptk += 8 + 4 + 2 + 3;
-	}
-
-	if (ptk - (u8 *) ieee->wpa_ie > ieee->wpa_ie_len)
-		return -EINVAL;
-
-	level = ipw_wpa_ie_cipher2level(*gtk);
-	ipw_set_hw_decrypt_multicast(priv, level);
-
-	level = ipw_wpa_ie_cipher2level(*ptk);
-	ipw_set_hw_decrypt_unicast(priv, level);
-
-      done:
-	ipw_wpa_assoc_frame(priv, ieee->wpa_ie, ieee->wpa_ie_len);
-	return 0;
-}
-
-/* implementation borrowed from hostap driver */
-
-static int ipw_wpa_set_encryption(struct net_device *dev,
-				  struct ipw_param *param, int param_len)
-{
-	int ret = 0;
-	int group_key = 0;
-	struct ipw_priv *priv = ieee80211_priv(dev);
-	struct ieee80211_device *ieee = priv->ieee;
-	struct ieee80211_crypto_ops *ops;
-	struct ieee80211_crypt_data **crypt;
-
-	struct ieee80211_security sec = {
-		.flags = 0,
-	};
-
-	param->u.crypt.err = 0;
-	param->u.crypt.alg[IPW_CRYPT_ALG_NAME_LEN - 1] = '\0';
-
-	if (param_len !=
-	    (int)((char *)param->u.crypt.key - (char *)param) +
-	    param->u.crypt.key_len) {
-		IPW_DEBUG_INFO("Len mismatch %d, %d\n", param_len,
-			       param->u.crypt.key_len);
-		return -EINVAL;
-	}
-	if (param->sta_addr[0] == 0xff && param->sta_addr[1] == 0xff &&
-	    param->sta_addr[2] == 0xff && param->sta_addr[3] == 0xff &&
-	    param->sta_addr[4] == 0xff && param->sta_addr[5] == 0xff) {
-		if (param->u.crypt.idx >= WEP_KEYS)
-			return -EINVAL;
-		crypt = &ieee->crypt[param->u.crypt.idx];
-	} else {
-		return -EINVAL;
-	}
-
-	if (param->u.crypt.idx != 0)
-		group_key = 1;
-
-	sec.flags |= SEC_ENABLED | SEC_ENCRYPT;
-	if (strcmp(param->u.crypt.alg, "none") == 0) {
-		if (crypt) {
-			sec.enabled = 0;
-			sec.encrypt = 0;
-			sec.level = SEC_LEVEL_0;
-			sec.flags |= SEC_LEVEL;
-			ieee80211_crypt_delayed_deinit(ieee, crypt);
-		}
-		goto done;
-	}
-	sec.enabled = 1;
-	sec.encrypt = 1;
-
-	/* IPW HW cannot build TKIP MIC, host decryption still needed. */
-	if (strcmp(param->u.crypt.alg, "TKIP") == 0) {
-		if (group_key)
-			ieee->host_mc_decrypt = 1;
-		else
-			ieee->host_encrypt_msdu = 1;
-	}
-
-	/*if (!(ieee->host_encrypt || ieee->host_encrypt_msdu ||
-	   ieee->host_decrypt))
-	   goto skip_host_crypt; */
-	if (group_key ? !ieee->host_mc_decrypt :
-	    !(ieee->host_encrypt || ieee->host_decrypt ||
-	      ieee->host_encrypt_msdu))
-		goto skip_host_crypt;
-
-	ops = ieee80211_get_crypto_ops(param->u.crypt.alg);
-	if (ops == NULL && strcmp(param->u.crypt.alg, "WEP") == 0) {
-		request_module("ieee80211_crypt_wep");
-		ops = ieee80211_get_crypto_ops(param->u.crypt.alg);
-	} else if (ops == NULL && strcmp(param->u.crypt.alg, "TKIP") == 0) {
-		request_module("ieee80211_crypt_tkip");
-		ops = ieee80211_get_crypto_ops(param->u.crypt.alg);
-	} else if (ops == NULL && strcmp(param->u.crypt.alg, "CCMP") == 0) {
-		request_module("ieee80211_crypt_ccmp");
-		ops = ieee80211_get_crypto_ops(param->u.crypt.alg);
-	}
-	if (ops == NULL) {
-		IPW_DEBUG_INFO("%s: unknown crypto alg '%s'\n",
-			       dev->name, param->u.crypt.alg);
-		param->u.crypt.err = IPW_CRYPT_ERR_UNKNOWN_ALG;
-		ret = -EINVAL;
-		goto done;
-	}
-
-	if (*crypt == NULL || (*crypt)->ops != ops) {
-		struct ieee80211_crypt_data *new_crypt;
-
-		ieee80211_crypt_delayed_deinit(ieee, crypt);
-
-		new_crypt = (struct ieee80211_crypt_data *)
-		    kmalloc(sizeof(*new_crypt), GFP_KERNEL);
-		if (new_crypt == NULL) {
-			ret = -ENOMEM;
-			goto done;
-		}
-		memset(new_crypt, 0, sizeof(struct ieee80211_crypt_data));
-		new_crypt->ops = ops;
-		if (new_crypt->ops && try_module_get(new_crypt->ops->owner))
-			new_crypt->priv =
-			    new_crypt->ops->init(param->u.crypt.idx);
-
-		if (new_crypt->priv == NULL) {
-			kfree(new_crypt);
-			param->u.crypt.err = IPW_CRYPT_ERR_CRYPT_INIT_FAILED;
-			ret = -EINVAL;
-			goto done;
-		}
-
-		*crypt = new_crypt;
-	}
-
-	if (param->u.crypt.key_len > 0 && (*crypt)->ops->set_key &&
-	    (*crypt)->ops->set_key(param->u.crypt.key,
-				   param->u.crypt.key_len, param->u.crypt.seq,
-				   (*crypt)->priv) < 0) {
-		IPW_DEBUG_INFO("%s: key setting failed\n", dev->name);
-		param->u.crypt.err = IPW_CRYPT_ERR_KEY_SET_FAILED;
-		ret = -EINVAL;
-		goto done;
-	}
-
-      skip_host_crypt:
-	if (param->u.crypt.set_tx) {
-		ieee->tx_keyidx = param->u.crypt.idx;
-		sec.active_key = param->u.crypt.idx;
-		sec.flags |= SEC_ACTIVE_KEY;
-	} else
-		sec.flags &= ~SEC_ACTIVE_KEY;
-
-	if (param->u.crypt.alg != NULL) {
-		memcpy(sec.keys[param->u.crypt.idx],
-		       param->u.crypt.key, param->u.crypt.key_len);
-		sec.key_sizes[param->u.crypt.idx] = param->u.crypt.key_len;
-		sec.flags |= (1 << param->u.crypt.idx);
-
-		if (strcmp(param->u.crypt.alg, "WEP") == 0) {
-			sec.flags |= SEC_LEVEL;
-			sec.level = SEC_LEVEL_1;
-		} else if (strcmp(param->u.crypt.alg, "TKIP") == 0) {
-			sec.flags |= SEC_LEVEL;
-			sec.level = SEC_LEVEL_2;
-		} else if (strcmp(param->u.crypt.alg, "CCMP") == 0) {
-			sec.flags |= SEC_LEVEL;
-			sec.level = SEC_LEVEL_3;
-		}
-		/* Don't set sec level for group keys. */
-		if (group_key)
-			sec.flags &= ~SEC_LEVEL;
-	}
-      done:
-	if (ieee->set_security)
-		ieee->set_security(ieee->dev, &sec);
-
-	/* Do not reset port if card is in Managed mode since resetting will
-	 * generate new IEEE 802.11 authentication which may end up in looping
-	 * with IEEE 802.1X.  If your hardware requires a reset after WEP
-	 * configuration (for example... Prism2), implement the reset_port in
-	 * the callbacks structures used to initialize the 802.11 stack. */
-	if (ieee->reset_on_keychange &&
-	    ieee->iw_mode != IW_MODE_INFRA &&
-	    ieee->reset_port && ieee->reset_port(dev)) {
-		IPW_DEBUG_INFO("%s: reset_port failed\n", dev->name);
-		param->u.crypt.err = IPW_CRYPT_ERR_CARD_CONF_FAILED;
-		return -EINVAL;
-	}
-
-	return ret;
-}
-
-static int ipw_wpa_supplicant(struct net_device *dev, struct iw_point *p)
-{
-	struct ipw_param *param;
-	struct ipw_priv *priv = ieee80211_priv(dev);
-	int ret = 0;
-
-	IPW_DEBUG_INFO("wpa_supplicant: len=%d\n", p->length);
-
-	if (p->length < sizeof(struct ipw_param) || !p->pointer)
-		return -EINVAL;
-
-	param = (struct ipw_param *)kmalloc(p->length, GFP_KERNEL);
-	if (param == NULL)
-		return -ENOMEM;
-
-	if (copy_from_user(param, p->pointer, p->length)) {
-		kfree(param);
-		return -EFAULT;
-	}
-
-	down(&priv->sem);
-	switch (param->cmd) {
-
-	case IPW_CMD_SET_WPA_PARAM:
-		ret = ipw_wpa_set_param(dev, param->u.wpa_param.name,
-					param->u.wpa_param.value);
-		break;
-
-	case IPW_CMD_SET_WPA_IE:
-		ret = ipw_wpa_set_wpa_ie(dev, param, p->length);
-		break;
-
-	case IPW_CMD_SET_ENCRYPTION:
-		ret = ipw_wpa_set_encryption(dev, param, p->length);
-		break;
-
-	case IPW_CMD_MLME:
-		ret = ipw_wpa_mlme(dev, param->u.mlme.command,
-				   param->u.mlme.reason_code);
-		break;
-
-	default:
-		IPW_ERROR("%s: Unknown WPA supplicant request: %d\n",
-			  dev->name, param->cmd);
-		ret = -EOPNOTSUPP;
-	}
-
-	up(&priv->sem);
-	if (ret == 0 && copy_to_user(p->pointer, param, p->length))
-		ret = -EFAULT;
-
-	kfree(param);
-	return ret;
-}
-#else
 /*
  * WE-18 support
  */
@@ -7021,7 +6542,6 @@
 	}
 	return 0;
 }
-#endif
 
 #ifdef CONFIG_IPW_QOS
 
@@ -9391,7 +8911,6 @@
 	return 0;
 }
 
-#if WIRELESS_EXT > 17
 static int ipw_request_direct_scan(struct ipw_priv *priv, char *essid,
 				   int essid_len)
 {
@@ -9455,14 +8974,12 @@
 	up(&priv->sem);
 	return err;
 }
-#endif				/* WIRELESS_EXT > 17 */
 
 static int ipw_wx_set_scan(struct net_device *dev,
 			   struct iw_request_info *info,
 			   union iwreq_data *wrqu, char *extra)
 {
 	struct ipw_priv *priv = ieee80211_priv(dev);
-#if WIRELESS_EXT > 17
 	struct iw_scan_req *req = NULL;
 	if (wrqu->data.length
 	    && wrqu->data.length == sizeof(struct iw_scan_req)) {
@@ -9473,7 +8990,7 @@
 			return 0;
 		}
 	}
-#endif
+
 	IPW_DEBUG_WX("Start scan\n");
 
 	queue_work(priv->workqueue, &priv->request_scan);
@@ -9923,7 +9440,6 @@
 	IW_IOCTL(SIOCGIWSPY) = iw_handler_get_spy,
 	IW_IOCTL(SIOCSIWTHRSPY) = iw_handler_set_thrspy,
 	IW_IOCTL(SIOCGIWTHRSPY) = iw_handler_get_thrspy,
-#if WIRELESS_EXT > 17
 	IW_IOCTL(SIOCSIWGENIE) = ipw_wx_set_genie,
 	IW_IOCTL(SIOCGIWGENIE) = ipw_wx_get_genie,
 	IW_IOCTL(SIOCSIWMLME) = ipw_wx_set_mlme,
@@ -9931,7 +9447,6 @@
 	IW_IOCTL(SIOCGIWAUTH) = ipw_wx_get_auth,
 	IW_IOCTL(SIOCSIWENCODEEXT) = ipw_wx_set_encodeext,
 	IW_IOCTL(SIOCGIWENCODEEXT) = ipw_wx_get_encodeext,
-#endif
 };
 
 enum {
@@ -11317,24 +10832,6 @@
 	up(&priv->sem);
 }
 
-#if WIRELESS_EXT < 18
-static int ipw_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
-{
-	struct iwreq *wrq = (struct iwreq *)rq;
-	int ret = -1;
-	switch (cmd) {
-	case IPW_IOCTL_WPA_SUPPLICANT:
-		ret = ipw_wpa_supplicant(dev, &wrq->u.data);
-		return ret;
-
-	default:
-		return -EOPNOTSUPP;
-	}
-
-	return -EOPNOTSUPP;
-}
-#endif
-
 /* Called by register_netdev() */
 static int ipw_net_init(struct net_device *dev)
 {
@@ -11512,9 +11009,6 @@
 	net_dev->open = ipw_net_open;
 	net_dev->stop = ipw_net_stop;
 	net_dev->init = ipw_net_init;
-#if WIRELESS_EXT < 18
-	net_dev->do_ioctl = ipw_ioctl;
-#endif
 	net_dev->get_stats = ipw_net_get_stats;
 	net_dev->set_multicast_list = ipw_net_set_multicast_list;
 	net_dev->set_mac_address = ipw_net_set_mac_address;