WIRELESS_EXT < 18 will never be true in the kernel.
Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]> --- drivers/net/wireless/ipw2100.c | 434 ---------------------- drivers/net/wireless/tiacx/acx_struct.h | 5 drivers/net/wireless/tiacx/common.c | 4 drivers/net/wireless/tiacx/conv.c | 2 drivers/net/wireless/tiacx/ioctl.c | 441 ----------------------- drivers/net/wireless/tiacx/pci.c | 8 drivers/net/wireless/tiacx/usb.c | 6 drivers/net/wireless/tiacx/wlan.c | 2 drivers/net/wireless/tiacx/wlan_compat.h | 9 9 files changed, 1 insertion(+), 910 deletions(-) --- linux-2.6.15-rc3-mm1/drivers/net/wireless/ipw2100.c.old 2005-12-03 02:56:37.000000000 +0100 +++ linux-2.6.15-rc3-mm1/drivers/net/wireless/ipw2100.c 2005-12-03 02:58:09.000000000 +0100 @@ -5735,70 +5735,6 @@ return &priv->ieee->stats; } -#if WIRELESS_EXT < 18 -/* Support for wpa_supplicant before WE-18, deprecated. */ - -/* following definitions must match definitions in driver_ipw.c */ - -#define IPW2100_IOCTL_WPA_SUPPLICANT SIOCIWFIRSTPRIV+30 - -#define IPW2100_CMD_SET_WPA_PARAM 1 -#define IPW2100_CMD_SET_WPA_IE 2 -#define IPW2100_CMD_SET_ENCRYPTION 3 -#define IPW2100_CMD_MLME 4 - -#define IPW2100_PARAM_WPA_ENABLED 1 -#define IPW2100_PARAM_TKIP_COUNTERMEASURES 2 -#define IPW2100_PARAM_DROP_UNENCRYPTED 3 -#define IPW2100_PARAM_PRIVACY_INVOKED 4 -#define IPW2100_PARAM_AUTH_ALGS 5 -#define IPW2100_PARAM_IEEE_802_1X 6 - -#define IPW2100_MLME_STA_DEAUTH 1 -#define IPW2100_MLME_STA_DISASSOC 2 - -#define IPW2100_CRYPT_ERR_UNKNOWN_ALG 2 -#define IPW2100_CRYPT_ERR_UNKNOWN_ADDR 3 -#define IPW2100_CRYPT_ERR_CRYPT_INIT_FAILED 4 -#define IPW2100_CRYPT_ERR_KEY_SET_FAILED 5 -#define IPW2100_CRYPT_ERR_TX_KEY_SET_FAILED 6 -#define IPW2100_CRYPT_ERR_CARD_CONF_FAILED 7 - -#define IPW2100_CRYPT_ALG_NAME_LEN 16 - -struct ipw2100_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[IPW2100_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 /* WIRELESS_EXT < 18 */ - static int ipw2100_wpa_enable(struct ipw2100_priv *priv, int value) { /* This is called when wpa_supplicant loads and closes the driver @@ -5807,11 +5743,6 @@ return 0; } -#if WIRELESS_EXT < 18 -#define IW_AUTH_ALG_OPEN_SYSTEM 0x1 -#define IW_AUTH_ALG_SHARED_KEY 0x2 -#endif - static int ipw2100_wpa_set_auth_algs(struct ipw2100_priv *priv, int value) { @@ -5855,360 +5786,6 @@ ipw2100_set_wpa_ie(priv, &frame, 0); } -#if WIRELESS_EXT < 18 -static int ipw2100_wpa_set_param(struct net_device *dev, u8 name, u32 value) -{ - struct ipw2100_priv *priv = ieee80211_priv(dev); - struct ieee80211_crypt_data *crypt; - unsigned long flags; - int ret = 0; - - switch (name) { - case IPW2100_PARAM_WPA_ENABLED: - ret = ipw2100_wpa_enable(priv, value); - break; - - case IPW2100_PARAM_TKIP_COUNTERMEASURES: - crypt = priv->ieee->crypt[priv->ieee->tx_keyidx]; - if (!crypt || !crypt->ops->set_flags || !crypt->ops->get_flags) - 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 IPW2100_PARAM_DROP_UNENCRYPTED:{ - /* See IW_AUTH_DROP_UNENCRYPTED handling for details */ - 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 IPW2100_PARAM_PRIVACY_INVOKED: - priv->ieee->privacy_invoked = value; - break; - - case IPW2100_PARAM_AUTH_ALGS: - ret = ipw2100_wpa_set_auth_algs(priv, value); - break; - - case IPW2100_PARAM_IEEE_802_1X: - priv->ieee->ieee802_1x = value; - break; - - default: - printk(KERN_ERR DRV_NAME ": %s: Unknown WPA param: %d\n", - dev->name, name); - ret = -EOPNOTSUPP; - } - - return ret; -} - -static int ipw2100_wpa_mlme(struct net_device *dev, int command, int reason) -{ - - struct ipw2100_priv *priv = ieee80211_priv(dev); - int ret = 0; - - switch (command) { - case IPW2100_MLME_STA_DEAUTH: - // silently ignore - break; - - case IPW2100_MLME_STA_DISASSOC: - ipw2100_disassociate_bssid(priv); - break; - - default: - printk(KERN_ERR DRV_NAME ": %s: Unknown MLME request: %d\n", - dev->name, command); - ret = -EOPNOTSUPP; - } - - return ret; -} - -static int ipw2100_wpa_set_wpa_ie(struct net_device *dev, - struct ipw2100_param *param, int plen) -{ - - struct ipw2100_priv *priv = ieee80211_priv(dev); - struct ieee80211_device *ieee = priv->ieee; - u8 *buf; - - if (!ieee->wpa_enabled) - return -EOPNOTSUPP; - - 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; - } - - ipw2100_wpa_assoc_frame(priv, ieee->wpa_ie, ieee->wpa_ie_len); - - return 0; -} - -/* implementation borrowed from hostap driver */ - -static int ipw2100_wpa_set_encryption(struct net_device *dev, - struct ipw2100_param *param, - int param_len) -{ - int ret = 0; - struct ipw2100_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[IPW2100_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; - } - - 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; - - 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 = IPW2100_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 = kzalloc(sizeof(struct ieee80211_crypt_data), GFP_KERNEL); - if (new_crypt == NULL) { - ret = -ENOMEM; - goto done; - } - 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 = - IPW2100_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 = IPW2100_CRYPT_ERR_KEY_SET_FAILED; - ret = -EINVAL; - goto done; - } - - 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; - } - - if (ops->name != NULL) { - - if (strcmp(ops->name, "WEP") == 0) { - 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); - sec.flags |= SEC_LEVEL; - sec.level = SEC_LEVEL_1; - } else if (strcmp(ops->name, "TKIP") == 0) { - sec.flags |= SEC_LEVEL; - sec.level = SEC_LEVEL_2; - } else if (strcmp(ops->name, "CCMP") == 0) { - sec.flags |= SEC_LEVEL; - sec.level = SEC_LEVEL_3; - } - } - 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 = IPW2100_CRYPT_ERR_CARD_CONF_FAILED; - return -EINVAL; - } - - return ret; -} - -static int ipw2100_wpa_supplicant(struct net_device *dev, struct iw_point *p) -{ - - struct ipw2100_param *param; - int ret = 0; - - IPW_DEBUG_IOCTL("wpa_supplicant: len=%d\n", p->length); - - if (p->length < sizeof(struct ipw2100_param) || !p->pointer) - return -EINVAL; - - param = (struct ipw2100_param *)kmalloc(p->length, GFP_KERNEL); - if (param == NULL) - return -ENOMEM; - - if (copy_from_user(param, p->pointer, p->length)) { - kfree(param); - return -EFAULT; - } - - switch (param->cmd) { - - case IPW2100_CMD_SET_WPA_PARAM: - ret = ipw2100_wpa_set_param(dev, param->u.wpa_param.name, - param->u.wpa_param.value); - break; - - case IPW2100_CMD_SET_WPA_IE: - ret = ipw2100_wpa_set_wpa_ie(dev, param, p->length); - break; - - case IPW2100_CMD_SET_ENCRYPTION: - ret = ipw2100_wpa_set_encryption(dev, param, p->length); - break; - - case IPW2100_CMD_MLME: - ret = ipw2100_wpa_mlme(dev, param->u.mlme.command, - param->u.mlme.reason_code); - break; - - default: - printk(KERN_ERR DRV_NAME - ": %s: Unknown WPA supplicant request: %d\n", dev->name, - param->cmd); - ret = -EOPNOTSUPP; - - } - - if (ret == 0 && copy_to_user(p->pointer, param, p->length)) - ret = -EFAULT; - - kfree(param); - return ret; -} - -static int ipw2100_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) -{ - struct iwreq *wrq = (struct iwreq *)rq; - int ret = -1; - switch (cmd) { - case IPW2100_IOCTL_WPA_SUPPLICANT: - ret = ipw2100_wpa_supplicant(dev, &wrq->u.data); - return ret; - - default: - return -EOPNOTSUPP; - } - - return -EOPNOTSUPP; -} -#endif /* WIRELESS_EXT < 18 */ - static void ipw_ethtool_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info) { @@ -6337,9 +5914,6 @@ dev->open = ipw2100_open; dev->stop = ipw2100_close; dev->init = ipw2100_net_init; -#if WIRELESS_EXT < 18 - dev->do_ioctl = ipw2100_ioctl; -#endif dev->get_stats = ipw2100_stats; dev->ethtool_ops = &ipw2100_ethtool_ops; dev->tx_timeout = ipw2100_tx_timeout; @@ -7852,7 +7426,6 @@ return 0; } -#if WIRELESS_EXT > 17 /* * WE-18 WPA support */ @@ -8114,7 +7687,6 @@ } return 0; } -#endif /* WIRELESS_EXT > 17 */ /* * @@ -8347,11 +7919,7 @@ NULL, /* SIOCWIWTHRSPY */ ipw2100_wx_set_wap, /* SIOCSIWAP */ ipw2100_wx_get_wap, /* SIOCGIWAP */ -#if WIRELESS_EXT > 17 ipw2100_wx_set_mlme, /* SIOCSIWMLME */ -#else - NULL, /* -- hole -- */ -#endif NULL, /* SIOCGIWAPLIST -- deprecated */ ipw2100_wx_set_scan, /* SIOCSIWSCAN */ ipw2100_wx_get_scan, /* SIOCGIWSCAN */ @@ -8375,7 +7943,6 @@ ipw2100_wx_get_encode, /* SIOCGIWENCODE */ ipw2100_wx_set_power, /* SIOCSIWPOWER */ ipw2100_wx_get_power, /* SIOCGIWPOWER */ -#if WIRELESS_EXT > 17 NULL, /* -- hole -- */ NULL, /* -- hole -- */ ipw2100_wx_set_genie, /* SIOCSIWGENIE */ @@ -8385,7 +7952,6 @@ ipw2100_wx_set_encodeext, /* SIOCSIWENCODEEXT */ ipw2100_wx_get_encodeext, /* SIOCGIWENCODEEXT */ NULL, /* SIOCSIWPMKSA */ -#endif }; #define IPW2100_PRIV_SET_MONITOR SIOCIWFIRSTPRIV --- linux-2.6.15-rc3-mm1/drivers/net/wireless/tiacx/acx_struct.h.old 2005-12-03 02:58:36.000000000 +0100 +++ linux-2.6.15-rc3-mm1/drivers/net/wireless/tiacx/acx_struct.h 2005-12-03 02:59:36.000000000 +0100 @@ -1053,9 +1053,8 @@ * the struct net_device. */ /*** Device statistics ***/ struct net_device_stats stats; /* net device statistics */ -#ifdef WIRELESS_EXT struct iw_statistics wstats; /* wireless statistics */ -#endif + /*** Power managment ***/ struct pm_dev *pm; /* PM crap */ @@ -1103,9 +1102,7 @@ u8 scan_rate; u16 scan_duration; u16 scan_probe_delay; -#if WIRELESS_EXT > 15 struct iw_spy_data spy_data; /* FIXME: needs to be implemented! */ -#endif /*** Wireless network settings ***/ /* copy of the device address (ifconfig hw ether) that we actually use --- linux-2.6.15-rc3-mm1/drivers/net/wireless/tiacx/common.c.old 2005-12-03 02:59:47.000000000 +0100 +++ linux-2.6.15-rc3-mm1/drivers/net/wireless/tiacx/common.c 2005-12-03 03:00:04.000000000 +0100 @@ -46,9 +46,7 @@ #include <linux/wireless.h> #include <linux/pm.h> #include <linux/vmalloc.h> -#if WIRELESS_EXT >= 13 #include <net/iw_handler.h> -#endif /* WE >= 13 */ #include "acx.h" @@ -2707,7 +2705,6 @@ acxlog(L_ASSOC, "%s(%d):%s\n", __func__, new_status, acx_get_status_name(new_status)); -#if WIRELESS_EXT > 13 /* wireless_send_event() and SIOCGIWSCAN */ /* wireless_send_event never sleeps */ if (ACX_STATUS_4_ASSOCIATED == new_status) { union iwreq_data wrqu; @@ -2729,7 +2726,6 @@ wrqu.ap_addr.sa_family = ARPHRD_ETHER; wireless_send_event(priv->netdev, SIOCGIWAP, &wrqu, NULL); } -#endif priv->status = new_status; --- linux-2.6.15-rc3-mm1/drivers/net/wireless/tiacx/conv.c.old 2005-12-03 03:00:17.000000000 +0100 +++ linux-2.6.15-rc3-mm1/drivers/net/wireless/tiacx/conv.c 2005-12-03 03:00:26.000000000 +0100 @@ -36,9 +36,7 @@ #include <linux/if_arp.h> #include <linux/etherdevice.h> #include <linux/wireless.h> -#if WIRELESS_EXT >= 13 #include <net/iw_handler.h> -#endif #include "acx.h" --- linux-2.6.15-rc3-mm1/drivers/net/wireless/tiacx/ioctl.c.old 2005-12-03 03:00:37.000000000 +0100 +++ linux-2.6.15-rc3-mm1/drivers/net/wireless/tiacx/ioctl.c 2005-12-03 03:02:07.000000000 +0100 @@ -39,9 +39,7 @@ #include <linux/if_arp.h> #include <linux/wireless.h> -#if WIRELESS_EXT >= 13 #include <net/iw_handler.h> -#endif /* WE >= 13 */ #include "acx.h" @@ -329,11 +327,9 @@ case IW_MODE_AUTO: priv->mode = ACX_MODE_OFF; break; -#if WIRELESS_EXT > 14 case IW_MODE_MONITOR: priv->mode = ACX_MODE_MONITOR; break; -#endif /* WIRELESS_EXT > 14 */ case IW_MODE_ADHOC: priv->mode = ACX_MODE_0_ADHOC; break; @@ -381,10 +377,8 @@ switch (priv->mode) { case ACX_MODE_OFF: *uwrq = IW_MODE_AUTO; break; -#if WIRELESS_EXT > 14 case ACX_MODE_MONITOR: *uwrq = IW_MODE_MONITOR; break; -#endif /* WIRELESS_EXT > 14 */ case ACX_MODE_0_ADHOC: *uwrq = IW_MODE_ADHOC; break; case ACX_MODE_2_STA: @@ -616,7 +610,6 @@ } -#if WIRELESS_EXT > 13 /*********************************************************************** ** acx_s_scan_add_station */ @@ -778,7 +771,6 @@ FN_EXIT1(result); return result; } -#endif /* WIRELESS_EXT > 13 */ /*---------------------------------------------------------------- @@ -1480,39 +1472,6 @@ } -/*================================================================*/ -/* Private functions */ -/*================================================================*/ - -#if WIRELESS_EXT < 13 -/*---------------------------------------------------------------- -* acx_ioctl_get_iw_priv -* -* Comment: I added the monitor mode and changed the stuff below -* to look more like the orinoco driver -*----------------------------------------------------------------*/ -static int -acx_ioctl_get_iw_priv(struct iwreq *iwr) -{ - int result = -EINVAL; - - if (!iwr->u.data.pointer) - return -EINVAL; - result = verify_area(VERIFY_WRITE, iwr->u.data.pointer, - sizeof(acx_ioctl_private_args)); - if (result) - return result; - - iwr->u.data.length = VEC_SIZE(acx_ioctl_private_args); - if (copy_to_user(iwr->u.data.pointer, - acx_ioctl_private_args, sizeof(acx_ioctl_private_args)) != 0) - result = -EFAULT; - - return result; -} -#endif - - /*---------------------------------------------------------------- * acx_ioctl_get_nick *----------------------------------------------------------------*/ @@ -2585,7 +2544,6 @@ /*********************************************************************** */ -#if WIRELESS_EXT >= 13 static const iw_handler acx_ioctl_handler[] = { (iw_handler) acx_ioctl_commit, /* SIOCSIWCOMMIT */ @@ -2624,13 +2582,8 @@ (iw_handler) acx_ioctl_get_ap, /* SIOCGIWAP */ (iw_handler) NULL, /* [nothing] */ (iw_handler) acx_ioctl_get_aplist, /* SIOCGIWAPLIST */ -#if WIRELESS_EXT > 13 (iw_handler) acx_ioctl_set_scan, /* SIOCSIWSCAN */ (iw_handler) acx_ioctl_get_scan, /* SIOCGIWSCAN */ -#else /* WE > 13 */ - (iw_handler) NULL, /* SIOCSIWSCAN */ - (iw_handler) NULL, /* SIOCGIWSCAN */ -#endif /* WE > 13 */ (iw_handler) acx_ioctl_set_essid, /* SIOCSIWESSID */ (iw_handler) acx_ioctl_get_essid, /* SIOCGIWESSID */ (iw_handler) acx_ioctl_set_nick, /* SIOCSIWNICKN */ @@ -2694,397 +2647,3 @@ .private_args = (struct iw_priv_args *) acx_ioctl_private_args, }; -#endif /* WE >= 13 */ - - -#if WIRELESS_EXT < 13 -/*================================================================*/ -/* Main function */ -/*================================================================*/ -/*---------------------------------------------------------------- -* acx_e_ioctl_old -* -* Comment: -* This is the *OLD* ioctl handler. -* Make sure to not only place your additions here, but instead mainly -* in the new one (acx_ioctl_handler[])! -*----------------------------------------------------------------*/ -int -acx_e_ioctl_old(netdevice_t *dev, struct ifreq *ifr, int cmd) -{ - wlandevice_t *priv = netdev_priv(dev); - int result = 0; - struct iwreq *iwr = (struct iwreq *)ifr; - - acxlog(L_IOCTL, "%s cmd = 0x%04X\n", __func__, cmd); - - /* This is the way it is done in the orinoco driver. - * Check to see if device is present. - */ - if (0 == netif_device_present(dev)) { - return -ENODEV; - } - - switch (cmd) { -/* WE 13 and higher will use acx_ioctl_handler_def */ - case SIOCGIWNAME: - /* get name == wireless protocol */ - result = acx_ioctl_get_name(dev, NULL, - (char *)&(iwr->u.name), NULL); - break; - - case SIOCSIWNWID: /* pre-802.11, */ - case SIOCGIWNWID: /* not supported. */ - result = -EOPNOTSUPP; - break; - - case SIOCSIWFREQ: - /* set channel/frequency (Hz) - data can be frequency or channel : - 0-1000 = channel - > 1000 = frequency in Hz */ - result = acx_ioctl_set_freq(dev, NULL, &(iwr->u.freq), NULL); - break; - - case SIOCGIWFREQ: - /* get channel/frequency (Hz) */ - result = acx_ioctl_get_freq(dev, NULL, &(iwr->u.freq), NULL); - break; - - case SIOCSIWMODE: - /* set operation mode */ - result = acx_ioctl_set_mode(dev, NULL, &(iwr->u.mode), NULL); - break; - - case SIOCGIWMODE: - /* get operation mode */ - result = acx_ioctl_get_mode(dev, NULL, &(iwr->u.mode), NULL); - break; - - case SIOCSIWSENS: - /* Set sensitivity */ - result = acx_ioctl_set_sens(dev, NULL, &(iwr->u.sens), NULL); - break; - - case SIOCGIWSENS: - /* Get sensitivity */ - result = acx_ioctl_get_sens(dev, NULL, &(iwr->u.sens), NULL); - break; - -#if WIRELESS_EXT > 10 - case SIOCGIWRANGE: - /* Get range of parameters */ - { - struct iw_range range; - result = acx_ioctl_get_range(dev, NULL, - &(iwr->u.data), (char *)&range); - if (copy_to_user(iwr->u.data.pointer, &range, - sizeof(struct iw_range))) - result = -EFAULT; - } - break; -#endif - - case SIOCGIWPRIV: - result = acx_ioctl_get_iw_priv(iwr); - break; - - /* FIXME: */ - /* case SIOCSIWSPY: */ - /* case SIOCGIWSPY: */ - /* case SIOCSIWTHRSPY: */ - /* case SIOCGIWTHRSPY: */ - - case SIOCSIWAP: - /* set access point by MAC address */ - result = acx_ioctl_set_ap(dev, NULL, &(iwr->u.ap_addr), - NULL); - break; - - case SIOCGIWAP: - /* get access point MAC address */ - result = acx_ioctl_get_ap(dev, NULL, &(iwr->u.ap_addr), - NULL); - break; - - case SIOCGIWAPLIST: - /* get list of access points in range */ - result = acx_ioctl_get_aplist(dev, NULL, &(iwr->u.data), - NULL); - break; - -#if NOT_FINISHED_YET - /* FIXME: do proper interfacing to activate that! */ - case SIOCSIWSCAN: - /* start a station scan */ - result = acx_ioctl_set_scan(iwr, priv); - break; - - case SIOCGIWSCAN: - /* get list of stations found during scan */ - result = acx_ioctl_get_scan(iwr, priv); - break; -#endif - - case SIOCSIWESSID: - /* set ESSID (network name) */ - { - char essid[IW_ESSID_MAX_SIZE+1]; - - if (iwr->u.essid.length > IW_ESSID_MAX_SIZE) - { - result = -E2BIG; - break; - } - if (copy_from_user(essid, iwr->u.essid.pointer, - iwr->u.essid.length)) - { - result = -EFAULT; - break; - } - result = acx_ioctl_set_essid(dev, NULL, - &(iwr->u.essid), essid); - } - break; - - case SIOCGIWESSID: - /* get ESSID */ - { - char essid[IW_ESSID_MAX_SIZE+1]; - if (iwr->u.essid.pointer) - result = acx_ioctl_get_essid(dev, NULL, - &(iwr->u.essid), essid); - if (copy_to_user(iwr->u.essid.pointer, essid, - iwr->u.essid.length)) - result = -EFAULT; - } - break; - - case SIOCSIWNICKN: - /* set nick */ - { - char nick[IW_ESSID_MAX_SIZE+1]; - - if (iwr->u.data.length > IW_ESSID_MAX_SIZE) - { - result = -E2BIG; - break; - } - if (copy_from_user(nick, iwr->u.data.pointer, - iwr->u.data.length)) - { - result = -EFAULT; - break; - } - result = acx_ioctl_set_nick(dev, NULL, - &(iwr->u.data), nick); - } - break; - - case SIOCGIWNICKN: - /* get nick */ - { - char nick[IW_ESSID_MAX_SIZE+1]; - if (iwr->u.data.pointer) - result = acx_ioctl_get_nick(dev, NULL, - &(iwr->u.data), nick); - if (copy_to_user(iwr->u.data.pointer, nick, - iwr->u.data.length)) - result = -EFAULT; - } - break; - - case SIOCSIWRATE: - /* set default bit rate (bps) */ - result = acx_ioctl_set_rate(dev, NULL, &(iwr->u.bitrate), - NULL); - break; - - case SIOCGIWRATE: - /* get default bit rate (bps) */ - result = acx_ioctl_get_rate(dev, NULL, &(iwr->u.bitrate), - NULL); - break; - - case SIOCSIWRTS: - /* set RTS threshold value */ - result = acx_ioctl_set_rts(dev, NULL, &(iwr->u.rts), NULL); - break; - case SIOCGIWRTS: - /* get RTS threshold value */ - result = acx_ioctl_get_rts(dev, NULL, &(iwr->u.rts), NULL); - break; - - /* FIXME: */ - /* case SIOCSIWFRAG: */ - /* case SIOCGIWFRAG: */ - -#if WIRELESS_EXT > 9 - case SIOCGIWTXPOW: - /* get tx power */ - result = acx_ioctl_get_txpow(dev, NULL, &(iwr->u.txpower), - NULL); - break; - - case SIOCSIWTXPOW: - /* set tx power */ - result = acx_ioctl_set_txpow(dev, NULL, &(iwr->u.txpower), - NULL); - break; -#endif - - case SIOCSIWRETRY: - result = acx_ioctl_set_retry(dev, NULL, &(iwr->u.retry), NULL); - break; - - case SIOCGIWRETRY: - result = acx_ioctl_get_retry(dev, NULL, &(iwr->u.retry), NULL); - break; - - case SIOCSIWENCODE: - { - /* set encoding token & mode */ - u8 key[29]; - if (iwr->u.encoding.pointer) { - if (iwr->u.encoding.length > 29) { - result = -E2BIG; - break; - } - if (copy_from_user(key, iwr->u.encoding.pointer, - iwr->u.encoding.length)) { - result = -EFAULT; - break; - } - } - else - if (iwr->u.encoding.length) { - result = -EINVAL; - break; - } - result = acx_ioctl_set_encode(dev, NULL, - &(iwr->u.encoding), key); - } - break; - - case SIOCGIWENCODE: - { - /* get encoding token & mode */ - u8 key[29]; - - result = acx_ioctl_get_encode(dev, NULL, - &(iwr->u.encoding), key); - if (iwr->u.encoding.pointer) { - if (copy_to_user(iwr->u.encoding.pointer, - key, iwr->u.encoding.length)) - result = -EFAULT; - } - } - break; - - /******************** iwpriv ioctls below ********************/ -#if ACX_DEBUG - case ACX100_IOCTL_DEBUG: - acx_ioctl_set_debug(dev, NULL, NULL, iwr->u.name); - break; -#endif - - case ACX100_IOCTL_SET_PLED: - acx100_ioctl_set_led_power(dev, NULL, NULL, iwr->u.name); - break; - - case ACX100_IOCTL_GET_PLED: - acx100_ioctl_get_led_power(dev, NULL, NULL, iwr->u.name); - break; - - case ACX100_IOCTL_LIST_DOM: - acx_ioctl_list_reg_domain(dev, NULL, NULL, NULL); - break; - - case ACX100_IOCTL_SET_DOM: - acx_ioctl_set_reg_domain(dev, NULL, NULL, iwr->u.name); - break; - - case ACX100_IOCTL_GET_DOM: - acx_ioctl_get_reg_domain(dev, NULL, NULL, iwr->u.name); - break; - - case ACX100_IOCTL_SET_SCAN_PARAMS: - acx_ioctl_set_scan_params(dev, NULL, NULL, iwr->u.name); - break; - - case ACX100_IOCTL_GET_SCAN_PARAMS: - acx_ioctl_get_scan_params(dev, NULL, NULL, iwr->u.name); - break; - - case ACX100_IOCTL_SET_PREAMB: - acx_ioctl_set_short_preamble(dev, NULL, NULL, iwr->u.name); - break; - - case ACX100_IOCTL_GET_PREAMB: - acx_ioctl_get_short_preamble(dev, NULL, NULL, iwr->u.name); - break; - - case ACX100_IOCTL_SET_ANT: - acx_ioctl_set_antenna(dev, NULL, NULL, iwr->u.name); - break; - - case ACX100_IOCTL_GET_ANT: - acx_ioctl_get_antenna(dev, NULL, NULL, NULL); - break; - - case ACX100_IOCTL_RX_ANT: - acx_ioctl_set_rx_antenna(dev, NULL, NULL, iwr->u.name); - break; - - case ACX100_IOCTL_TX_ANT: - acx_ioctl_set_tx_antenna(dev, NULL, NULL, iwr->u.name); - break; - - case ACX100_IOCTL_SET_ED: - acx_ioctl_set_ed_threshold(dev, NULL, NULL, iwr->u.name); - break; - - case ACX100_IOCTL_SET_CCA: - acx_ioctl_set_cca(dev, NULL, NULL, iwr->u.name); - break; - - case ACX100_IOCTL_MONITOR: /* set sniff (monitor) mode */ - acxlog(L_IOCTL, "%s: IWPRIV monitor\n", dev->name); - - /* can only be done by admin */ - if (!capable(CAP_NET_ADMIN)) { - result = -EPERM; - break; - } - result = acx_ioctl_wlansniff(dev, NULL, NULL, iwr->u.name); - break; - - case ACX100_IOCTL_TEST: - acx_ioctl_unknown11(dev, NULL, NULL, NULL); - break; - - case ACX111_IOCTL_INFO: - acx111_ioctl_info(dev, NULL, NULL, NULL); - break; - - default: - acxlog(L_IOCTL, "wireless ioctl 0x%04X queried " - "but not implemented yet\n", cmd); - result = -EOPNOTSUPP; - break; - } - - if ((priv->dev_state_mask & ACX_STATE_IFACE_UP) && priv->set_mask) { - acx_sem_lock(priv); - acx_s_update_card_settings(priv, 0, 0); - acx_sem_unlock(priv); - } - - /* older WEs don't have a commit handler, - * so we need to fix return code in this case */ - if (-EINPROGRESS == result) - result = 0; - - return result; -} -#endif /* WE < 13 */ --- linux-2.6.15-rc3-mm1/drivers/net/wireless/tiacx/pci.c.old 2005-12-03 03:02:16.000000000 +0100 +++ linux-2.6.15-rc3-mm1/drivers/net/wireless/tiacx/pci.c 2005-12-03 03:02:30.000000000 +0100 @@ -45,9 +45,7 @@ #include <linux/if_arp.h> #include <linux/rtnetlink.h> #include <linux/wireless.h> -#if WIRELESS_EXT >= 13 #include <net/iw_handler.h> -#endif #include <linux/netdevice.h> #include <linux/ioport.h> #include <linux/pci.h> @@ -1820,11 +1818,7 @@ dev->hard_start_xmit = &acx_i_start_xmit; dev->get_stats = &acx_e_get_stats; dev->get_wireless_stats = &acx_e_get_wireless_stats; -#if WIRELESS_EXT >= 13 dev->wireless_handlers = (struct iw_handler_def *)&acx_ioctl_handler_def; -#else - dev->do_ioctl = &acx_e_ioctl_old; -#endif dev->set_multicast_list = &acxpci_i_set_multicast_list; dev->tx_timeout = &acxpci_i_tx_timeout; dev->change_mtu = &acx_e_change_mtu; @@ -3842,7 +3836,6 @@ r100 = txdesc->u.r1.rate; r111 = txdesc->u.r2.rate111; -#if WIRELESS_EXT > 13 /* wireless_send_event() and IWEVTXDROP are WE13 */ /* need to check for certain error conditions before we * clean the descriptor: we still need valid descr data here */ if (unlikely(0x30 & error)) { @@ -3857,7 +3850,6 @@ MAC_COPY(wrqu.addr.sa_data, hdr->a1); wireless_send_event(priv->netdev, IWEVTXDROP, &wrqu, NULL); } -#endif /* ...and free the desc */ txdesc->error = 0; txdesc->ack_failures = 0; --- linux-2.6.15-rc3-mm1/drivers/net/wireless/tiacx/usb.c.old 2005-12-03 03:02:40.000000000 +0100 +++ linux-2.6.15-rc3-mm1/drivers/net/wireless/tiacx/usb.c 2005-12-03 03:02:49.000000000 +0100 @@ -61,9 +61,7 @@ #include <linux/rtnetlink.h> #include <linux/etherdevice.h> #include <linux/wireless.h> -#if WIRELESS_EXT >= 13 #include <net/iw_handler.h> -#endif #include <linux/vmalloc.h> #include "acx.h" @@ -871,11 +869,7 @@ dev->hard_start_xmit = (void *)&acx_i_start_xmit; dev->get_stats = (void *)&acx_e_get_stats; dev->get_wireless_stats = (void *)&acx_e_get_wireless_stats; -#if WIRELESS_EXT >= 13 dev->wireless_handlers = (struct iw_handler_def *)&acx_ioctl_handler_def; -#else - dev->do_ioctl = (void *)&acx_e_ioctl_old; -#endif dev->set_multicast_list = (void *)&acx100usb_i_set_rx_mode; #ifdef HAVE_TX_TIMEOUT dev->tx_timeout = &acx100usb_i_tx_timeout; --- linux-2.6.15-rc3-mm1/drivers/net/wireless/tiacx/wlan.c.old 2005-12-03 03:02:58.000000000 +0100 +++ linux-2.6.15-rc3-mm1/drivers/net/wireless/tiacx/wlan.c 2005-12-03 03:03:02.000000000 +0100 @@ -43,9 +43,7 @@ #include <linux/types.h> #include <linux/if_arp.h> #include <linux/wireless.h> -#if WIRELESS_EXT >= 13 #include <net/iw_handler.h> -#endif #include "acx.h" --- linux-2.6.15-rc3-mm1/drivers/net/wireless/tiacx/wlan_compat.h.old 2005-12-03 03:03:11.000000000 +0100 +++ linux-2.6.15-rc3-mm1/drivers/net/wireless/tiacx/wlan_compat.h 2005-12-03 03:03:19.000000000 +0100 @@ -228,15 +228,6 @@ typedef struct net_device netdevice_t; #endif -#ifdef WIRELESS_EXT -#if (WIRELESS_EXT < 13) -struct iw_request_info { - __u16 cmd; /* Wireless Extension command */ - __u16 flags; /* More to come ;-) */ -}; -#endif -#endif - /* Interrupt handler backwards compatibility stuff */ #ifndef IRQ_NONE #define IRQ_NONE - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html