aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/iwmc3200wifi/Kconfig1
-rw-r--r--drivers/net/wireless/iwmc3200wifi/Makefile2
-rw-r--r--drivers/net/wireless/iwmc3200wifi/iwm.h2
-rw-r--r--drivers/net/wireless/iwmc3200wifi/netdev.c1
-rw-r--r--drivers/net/wireless/iwmc3200wifi/wext.c95
-rw-r--r--net/mac80211/Kconfig1
-rw-r--r--net/mac80211/Makefile1
-rw-r--r--net/mac80211/ieee80211_i.h4
-rw-r--r--net/mac80211/iface.c1
-rw-r--r--net/mac80211/scan.c1
-rw-r--r--net/mac80211/wext.c98
-rw-r--r--net/wireless/core.c3
-rw-r--r--net/wireless/mlme.c2
-rw-r--r--net/wireless/scan.c1
-rw-r--r--net/wireless/sme.c2
-rw-r--r--net/wireless/wext-compat.c40
-rw-r--r--net/wireless/wext-compat.h5
17 files changed, 54 insertions, 206 deletions
diff --git a/drivers/net/wireless/iwmc3200wifi/Kconfig b/drivers/net/wireless/iwmc3200wifi/Kconfig
index 030401d367d3..c62da435285a 100644
--- a/drivers/net/wireless/iwmc3200wifi/Kconfig
+++ b/drivers/net/wireless/iwmc3200wifi/Kconfig
@@ -2,7 +2,6 @@ config IWM
2 tristate "Intel Wireless Multicomm 3200 WiFi driver" 2 tristate "Intel Wireless Multicomm 3200 WiFi driver"
3 depends on MMC && WLAN_80211 && EXPERIMENTAL 3 depends on MMC && WLAN_80211 && EXPERIMENTAL
4 depends on CFG80211 4 depends on CFG80211
5 select WIRELESS_EXT
6 select FW_LOADER 5 select FW_LOADER
7 help 6 help
8 The Intel Wireless Multicomm 3200 hardware is a combo 7 The Intel Wireless Multicomm 3200 hardware is a combo
diff --git a/drivers/net/wireless/iwmc3200wifi/Makefile b/drivers/net/wireless/iwmc3200wifi/Makefile
index 927f022545c1..d34291b652d3 100644
--- a/drivers/net/wireless/iwmc3200wifi/Makefile
+++ b/drivers/net/wireless/iwmc3200wifi/Makefile
@@ -1,5 +1,5 @@
1obj-$(CONFIG_IWM) := iwmc3200wifi.o 1obj-$(CONFIG_IWM) := iwmc3200wifi.o
2iwmc3200wifi-objs += main.o netdev.o rx.o tx.o sdio.o hal.o fw.o 2iwmc3200wifi-objs += main.o netdev.o rx.o tx.o sdio.o hal.o fw.o
3iwmc3200wifi-objs += commands.o wext.o cfg80211.o eeprom.o 3iwmc3200wifi-objs += commands.o cfg80211.o eeprom.o
4 4
5iwmc3200wifi-$(CONFIG_IWM_DEBUG) += debugfs.o 5iwmc3200wifi-$(CONFIG_IWM_DEBUG) += debugfs.o
diff --git a/drivers/net/wireless/iwmc3200wifi/iwm.h b/drivers/net/wireless/iwmc3200wifi/iwm.h
index 2175a481d2f4..7a51bc340fda 100644
--- a/drivers/net/wireless/iwmc3200wifi/iwm.h
+++ b/drivers/net/wireless/iwmc3200wifi/iwm.h
@@ -306,8 +306,6 @@ static inline void *iwm_private(struct iwm_priv *iwm)
306#define skb_to_rx_info(s) ((struct iwm_rx_info *)(s->cb)) 306#define skb_to_rx_info(s) ((struct iwm_rx_info *)(s->cb))
307#define skb_to_tx_info(s) ((struct iwm_tx_info *)s->cb) 307#define skb_to_tx_info(s) ((struct iwm_tx_info *)s->cb)
308 308
309extern const struct iw_handler_def iwm_iw_handler_def;
310
311void *iwm_if_alloc(int sizeof_bus, struct device *dev, 309void *iwm_if_alloc(int sizeof_bus, struct device *dev,
312 struct iwm_if_ops *if_ops); 310 struct iwm_if_ops *if_ops);
313void iwm_if_free(struct iwm_priv *iwm); 311void iwm_if_free(struct iwm_priv *iwm);
diff --git a/drivers/net/wireless/iwmc3200wifi/netdev.c b/drivers/net/wireless/iwmc3200wifi/netdev.c
index 092d28ae56a0..30116d1b4489 100644
--- a/drivers/net/wireless/iwmc3200wifi/netdev.c
+++ b/drivers/net/wireless/iwmc3200wifi/netdev.c
@@ -123,7 +123,6 @@ void *iwm_if_alloc(int sizeof_bus, struct device *dev,
123 } 123 }
124 124
125 ndev->netdev_ops = &iwm_netdev_ops; 125 ndev->netdev_ops = &iwm_netdev_ops;
126 ndev->wireless_handlers = &iwm_iw_handler_def;
127 ndev->ieee80211_ptr = wdev; 126 ndev->ieee80211_ptr = wdev;
128 SET_NETDEV_DEV(ndev, wiphy_dev(wdev->wiphy)); 127 SET_NETDEV_DEV(ndev, wiphy_dev(wdev->wiphy));
129 wdev->netdev = ndev; 128 wdev->netdev = ndev;
diff --git a/drivers/net/wireless/iwmc3200wifi/wext.c b/drivers/net/wireless/iwmc3200wifi/wext.c
deleted file mode 100644
index 9196024a2890..000000000000
--- a/drivers/net/wireless/iwmc3200wifi/wext.c
+++ /dev/null
@@ -1,95 +0,0 @@
1/*
2 * Intel Wireless Multicomm 3200 WiFi driver
3 *
4 * Copyright (C) 2009 Intel Corporation <ilw@linux.intel.com>
5 * Samuel Ortiz <samuel.ortiz@intel.com>
6 * Zhu Yi <yi.zhu@intel.com>
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License version
10 * 2 as published by the Free Software Foundation.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
20 * 02110-1301, USA.
21 *
22 */
23
24#include <linux/wireless.h>
25#include <net/cfg80211.h>
26
27#include "iwm.h"
28#include "commands.h"
29
30static const iw_handler iwm_handlers[] =
31{
32 (iw_handler) NULL, /* SIOCSIWCOMMIT */
33 (iw_handler) cfg80211_wext_giwname, /* SIOCGIWNAME */
34 (iw_handler) NULL, /* SIOCSIWNWID */
35 (iw_handler) NULL, /* SIOCGIWNWID */
36 (iw_handler) cfg80211_wext_siwfreq, /* SIOCSIWFREQ */
37 (iw_handler) cfg80211_wext_giwfreq, /* SIOCGIWFREQ */
38 (iw_handler) cfg80211_wext_siwmode, /* SIOCSIWMODE */
39 (iw_handler) cfg80211_wext_giwmode, /* SIOCGIWMODE */
40 (iw_handler) NULL, /* SIOCSIWSENS */
41 (iw_handler) NULL, /* SIOCGIWSENS */
42 (iw_handler) NULL /* not used */, /* SIOCSIWRANGE */
43 (iw_handler) cfg80211_wext_giwrange, /* SIOCGIWRANGE */
44 (iw_handler) NULL /* not used */, /* SIOCSIWPRIV */
45 (iw_handler) NULL /* kernel code */, /* SIOCGIWPRIV */
46 (iw_handler) NULL /* not used */, /* SIOCSIWSTATS */
47 (iw_handler) NULL /* kernel code */, /* SIOCGIWSTATS */
48 (iw_handler) NULL, /* SIOCSIWSPY */
49 (iw_handler) NULL, /* SIOCGIWSPY */
50 (iw_handler) NULL, /* SIOCSIWTHRSPY */
51 (iw_handler) NULL, /* SIOCGIWTHRSPY */
52 (iw_handler) cfg80211_wext_siwap, /* SIOCSIWAP */
53 (iw_handler) cfg80211_wext_giwap, /* SIOCGIWAP */
54 (iw_handler) NULL, /* SIOCSIWMLME */
55 (iw_handler) NULL, /* SIOCGIWAPLIST */
56 (iw_handler) cfg80211_wext_siwscan, /* SIOCSIWSCAN */
57 (iw_handler) cfg80211_wext_giwscan, /* SIOCGIWSCAN */
58 (iw_handler) cfg80211_wext_siwessid, /* SIOCSIWESSID */
59 (iw_handler) cfg80211_wext_giwessid, /* SIOCGIWESSID */
60 (iw_handler) NULL, /* SIOCSIWNICKN */
61 (iw_handler) NULL, /* SIOCGIWNICKN */
62 (iw_handler) NULL, /* -- hole -- */
63 (iw_handler) NULL, /* -- hole -- */
64 (iw_handler) NULL, /* SIOCSIWRATE */
65 (iw_handler) cfg80211_wext_giwrate, /* SIOCGIWRATE */
66 (iw_handler) cfg80211_wext_siwrts, /* SIOCSIWRTS */
67 (iw_handler) cfg80211_wext_giwrts, /* SIOCGIWRTS */
68 (iw_handler) cfg80211_wext_siwfrag, /* SIOCSIWFRAG */
69 (iw_handler) cfg80211_wext_giwfrag, /* SIOCGIWFRAG */
70 (iw_handler) cfg80211_wext_siwtxpower, /* SIOCSIWTXPOW */
71 (iw_handler) cfg80211_wext_giwtxpower, /* SIOCGIWTXPOW */
72 (iw_handler) NULL, /* SIOCSIWRETRY */
73 (iw_handler) NULL, /* SIOCGIWRETRY */
74 (iw_handler) cfg80211_wext_siwencode, /* SIOCSIWENCODE */
75 (iw_handler) cfg80211_wext_giwencode, /* SIOCGIWENCODE */
76 (iw_handler) cfg80211_wext_siwpower, /* SIOCSIWPOWER */
77 (iw_handler) cfg80211_wext_giwpower, /* SIOCGIWPOWER */
78 (iw_handler) NULL, /* -- hole -- */
79 (iw_handler) NULL, /* -- hole -- */
80 (iw_handler) cfg80211_wext_siwgenie, /* SIOCSIWGENIE */
81 (iw_handler) NULL, /* SIOCGIWGENIE */
82 (iw_handler) cfg80211_wext_siwauth, /* SIOCSIWAUTH */
83 (iw_handler) cfg80211_wext_giwauth, /* SIOCGIWAUTH */
84 (iw_handler) cfg80211_wext_siwencodeext, /* SIOCSIWENCODEEXT */
85 (iw_handler) NULL, /* SIOCGIWENCODEEXT */
86 (iw_handler) NULL, /* SIOCSIWPMKSA */
87 (iw_handler) NULL, /* -- hole -- */
88};
89
90const struct iw_handler_def iwm_iw_handler_def = {
91 .num_standard = ARRAY_SIZE(iwm_handlers),
92 .standard = (iw_handler *) iwm_handlers,
93 .get_wireless_stats = cfg80211_wireless_stats,
94};
95
diff --git a/net/mac80211/Kconfig b/net/mac80211/Kconfig
index 19a4c66e143e..7dd77b6d4c9a 100644
--- a/net/mac80211/Kconfig
+++ b/net/mac80211/Kconfig
@@ -6,7 +6,6 @@ config MAC80211
6 select CRYPTO_ARC4 6 select CRYPTO_ARC4
7 select CRYPTO_AES 7 select CRYPTO_AES
8 select CRC32 8 select CRC32
9 select WIRELESS_EXT
10 ---help--- 9 ---help---
11 This option enables the hardware independent IEEE 802.11 10 This option enables the hardware independent IEEE 802.11
12 networking stack. 11 networking stack.
diff --git a/net/mac80211/Makefile b/net/mac80211/Makefile
index 91284a74ff91..9f3cf7129324 100644
--- a/net/mac80211/Makefile
+++ b/net/mac80211/Makefile
@@ -3,7 +3,6 @@ obj-$(CONFIG_MAC80211) += mac80211.o
3# mac80211 objects 3# mac80211 objects
4mac80211-y := \ 4mac80211-y := \
5 main.o \ 5 main.o \
6 wext.o \
7 sta_info.o \ 6 sta_info.o \
8 wep.o \ 7 wep.o \
9 wpa.o \ 8 wpa.o \
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index c6b25cb73284..aec6853cb435 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -24,7 +24,6 @@
24#include <linux/spinlock.h> 24#include <linux/spinlock.h>
25#include <linux/etherdevice.h> 25#include <linux/etherdevice.h>
26#include <net/cfg80211.h> 26#include <net/cfg80211.h>
27#include <net/iw_handler.h>
28#include <net/mac80211.h> 27#include <net/mac80211.h>
29#include "key.h" 28#include "key.h"
30#include "sta_info.h" 29#include "sta_info.h"
@@ -951,9 +950,6 @@ void ieee80211_bss_info_change_notify(struct ieee80211_sub_if_data *sdata,
951void ieee80211_configure_filter(struct ieee80211_local *local); 950void ieee80211_configure_filter(struct ieee80211_local *local);
952u32 ieee80211_reset_erp_info(struct ieee80211_sub_if_data *sdata); 951u32 ieee80211_reset_erp_info(struct ieee80211_sub_if_data *sdata);
953 952
954/* wireless extensions */
955extern const struct iw_handler_def ieee80211_iw_handler_def;
956
957/* STA code */ 953/* STA code */
958void ieee80211_sta_setup_sdata(struct ieee80211_sub_if_data *sdata); 954void ieee80211_sta_setup_sdata(struct ieee80211_sub_if_data *sdata);
959int ieee80211_mgd_auth(struct ieee80211_sub_if_data *sdata, 955int ieee80211_mgd_auth(struct ieee80211_sub_if_data *sdata,
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index d79a21105042..6c655b6547fb 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -684,7 +684,6 @@ static void ieee80211_if_setup(struct net_device *dev)
684{ 684{
685 ether_setup(dev); 685 ether_setup(dev);
686 dev->netdev_ops = &ieee80211_dataif_ops; 686 dev->netdev_ops = &ieee80211_dataif_ops;
687 dev->wireless_handlers = &ieee80211_iw_handler_def;
688 dev->destructor = free_netdev; 687 dev->destructor = free_netdev;
689} 688}
690 689
diff --git a/net/mac80211/scan.c b/net/mac80211/scan.c
index 147772a2977c..45731000eb8d 100644
--- a/net/mac80211/scan.c
+++ b/net/mac80211/scan.c
@@ -18,7 +18,6 @@
18#include <linux/if_arp.h> 18#include <linux/if_arp.h>
19#include <linux/rtnetlink.h> 19#include <linux/rtnetlink.h>
20#include <net/mac80211.h> 20#include <net/mac80211.h>
21#include <net/iw_handler.h>
22 21
23#include "ieee80211_i.h" 22#include "ieee80211_i.h"
24#include "driver-ops.h" 23#include "driver-ops.h"
diff --git a/net/mac80211/wext.c b/net/mac80211/wext.c
deleted file mode 100644
index aa250c3e8fda..000000000000
--- a/net/mac80211/wext.c
+++ /dev/null
@@ -1,98 +0,0 @@
1/*
2 * Copyright 2002-2005, Instant802 Networks, Inc.
3 * Copyright 2005-2006, Devicescape Software, Inc.
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 */
9
10#include <linux/module.h>
11#include <linux/init.h>
12#include <linux/netdevice.h>
13#include <linux/types.h>
14#include <linux/slab.h>
15#include <linux/skbuff.h>
16#include <linux/etherdevice.h>
17#include <linux/if_arp.h>
18#include <linux/wireless.h>
19#include <net/iw_handler.h>
20#include <asm/uaccess.h>
21
22#include <net/mac80211.h>
23#include "ieee80211_i.h"
24#include "led.h"
25#include "rate.h"
26#include "wpa.h"
27#include "aes_ccm.h"
28
29
30
31/* Structures to export the Wireless Handlers */
32
33static const iw_handler ieee80211_handler[] =
34{
35 (iw_handler) NULL, /* SIOCSIWCOMMIT */
36 (iw_handler) cfg80211_wext_giwname, /* SIOCGIWNAME */
37 (iw_handler) NULL, /* SIOCSIWNWID */
38 (iw_handler) NULL, /* SIOCGIWNWID */
39 (iw_handler) cfg80211_wext_siwfreq, /* SIOCSIWFREQ */
40 (iw_handler) cfg80211_wext_giwfreq, /* SIOCGIWFREQ */
41 (iw_handler) cfg80211_wext_siwmode, /* SIOCSIWMODE */
42 (iw_handler) cfg80211_wext_giwmode, /* SIOCGIWMODE */
43 (iw_handler) NULL, /* SIOCSIWSENS */
44 (iw_handler) NULL, /* SIOCGIWSENS */
45 (iw_handler) NULL /* not used */, /* SIOCSIWRANGE */
46 (iw_handler) cfg80211_wext_giwrange, /* SIOCGIWRANGE */
47 (iw_handler) NULL /* not used */, /* SIOCSIWPRIV */
48 (iw_handler) NULL /* kernel code */, /* SIOCGIWPRIV */
49 (iw_handler) NULL /* not used */, /* SIOCSIWSTATS */
50 (iw_handler) NULL /* kernel code */, /* SIOCGIWSTATS */
51 (iw_handler) NULL, /* SIOCSIWSPY */
52 (iw_handler) NULL, /* SIOCGIWSPY */
53 (iw_handler) NULL, /* SIOCSIWTHRSPY */
54 (iw_handler) NULL, /* SIOCGIWTHRSPY */
55 (iw_handler) cfg80211_wext_siwap, /* SIOCSIWAP */
56 (iw_handler) cfg80211_wext_giwap, /* SIOCGIWAP */
57 (iw_handler) cfg80211_wext_siwmlme, /* SIOCSIWMLME */
58 (iw_handler) NULL, /* SIOCGIWAPLIST */
59 (iw_handler) cfg80211_wext_siwscan, /* SIOCSIWSCAN */
60 (iw_handler) cfg80211_wext_giwscan, /* SIOCGIWSCAN */
61 (iw_handler) cfg80211_wext_siwessid, /* SIOCSIWESSID */
62 (iw_handler) cfg80211_wext_giwessid, /* SIOCGIWESSID */
63 (iw_handler) NULL, /* SIOCSIWNICKN */
64 (iw_handler) NULL, /* SIOCGIWNICKN */
65 (iw_handler) NULL, /* -- hole -- */
66 (iw_handler) NULL, /* -- hole -- */
67 (iw_handler) cfg80211_wext_siwrate, /* SIOCSIWRATE */
68 (iw_handler) cfg80211_wext_giwrate, /* SIOCGIWRATE */
69 (iw_handler) cfg80211_wext_siwrts, /* SIOCSIWRTS */
70 (iw_handler) cfg80211_wext_giwrts, /* SIOCGIWRTS */
71 (iw_handler) cfg80211_wext_siwfrag, /* SIOCSIWFRAG */
72 (iw_handler) cfg80211_wext_giwfrag, /* SIOCGIWFRAG */
73 (iw_handler) cfg80211_wext_siwtxpower, /* SIOCSIWTXPOW */
74 (iw_handler) cfg80211_wext_giwtxpower, /* SIOCGIWTXPOW */
75 (iw_handler) cfg80211_wext_siwretry, /* SIOCSIWRETRY */
76 (iw_handler) cfg80211_wext_giwretry, /* SIOCGIWRETRY */
77 (iw_handler) cfg80211_wext_siwencode, /* SIOCSIWENCODE */
78 (iw_handler) cfg80211_wext_giwencode, /* SIOCGIWENCODE */
79 (iw_handler) cfg80211_wext_siwpower, /* SIOCSIWPOWER */
80 (iw_handler) cfg80211_wext_giwpower, /* SIOCGIWPOWER */
81 (iw_handler) NULL, /* -- hole -- */
82 (iw_handler) NULL, /* -- hole -- */
83 (iw_handler) cfg80211_wext_siwgenie, /* SIOCSIWGENIE */
84 (iw_handler) NULL, /* SIOCGIWGENIE */
85 (iw_handler) cfg80211_wext_siwauth, /* SIOCSIWAUTH */
86 (iw_handler) cfg80211_wext_giwauth, /* SIOCGIWAUTH */
87 (iw_handler) cfg80211_wext_siwencodeext, /* SIOCSIWENCODEEXT */
88 (iw_handler) NULL, /* SIOCGIWENCODEEXT */
89 (iw_handler) NULL, /* SIOCSIWPMKSA */
90 (iw_handler) NULL, /* -- hole -- */
91};
92
93const struct iw_handler_def ieee80211_iw_handler_def =
94{
95 .num_standard = ARRAY_SIZE(ieee80211_handler),
96 .standard = (iw_handler *) ieee80211_handler,
97 .get_wireless_stats = cfg80211_wireless_stats,
98};
diff --git a/net/wireless/core.c b/net/wireless/core.c
index 442c9f389799..f9fee65dc06a 100644
--- a/net/wireless/core.c
+++ b/net/wireless/core.c
@@ -19,6 +19,7 @@
19#include "core.h" 19#include "core.h"
20#include "sysfs.h" 20#include "sysfs.h"
21#include "debugfs.h" 21#include "debugfs.h"
22#include "wext-compat.h"
22 23
23/* name for sysfs, %d is appended */ 24/* name for sysfs, %d is appended */
24#define PHY_NAME "phy" 25#define PHY_NAME "phy"
@@ -665,6 +666,8 @@ static int cfg80211_netdev_notifier_call(struct notifier_block * nb,
665 wdev->sme_state = CFG80211_SME_IDLE; 666 wdev->sme_state = CFG80211_SME_IDLE;
666 mutex_unlock(&rdev->devlist_mtx); 667 mutex_unlock(&rdev->devlist_mtx);
667#ifdef CONFIG_WIRELESS_EXT 668#ifdef CONFIG_WIRELESS_EXT
669 if (!dev->wireless_handlers)
670 dev->wireless_handlers = &cfg80211_wext_handler;
668 wdev->wext.default_key = -1; 671 wdev->wext.default_key = -1;
669 wdev->wext.default_mgmt_key = -1; 672 wdev->wext.default_mgmt_key = -1;
670 wdev->wext.connect.auth_type = NL80211_AUTHTYPE_AUTOMATIC; 673 wdev->wext.connect.auth_type = NL80211_AUTHTYPE_AUTOMATIC;
diff --git a/net/wireless/mlme.c b/net/wireless/mlme.c
index 30058a80d7af..097a87d7bae1 100644
--- a/net/wireless/mlme.c
+++ b/net/wireless/mlme.c
@@ -8,7 +8,9 @@
8#include <linux/module.h> 8#include <linux/module.h>
9#include <linux/netdevice.h> 9#include <linux/netdevice.h>
10#include <linux/nl80211.h> 10#include <linux/nl80211.h>
11#include <linux/wireless.h>
11#include <net/cfg80211.h> 12#include <net/cfg80211.h>
13#include <net/iw_handler.h>
12#include "core.h" 14#include "core.h"
13#include "nl80211.h" 15#include "nl80211.h"
14 16
diff --git a/net/wireless/scan.c b/net/wireless/scan.c
index 2a2683f6c04a..67714d7ed5b4 100644
--- a/net/wireless/scan.c
+++ b/net/wireless/scan.c
@@ -14,6 +14,7 @@
14#include <net/iw_handler.h> 14#include <net/iw_handler.h>
15#include "core.h" 15#include "core.h"
16#include "nl80211.h" 16#include "nl80211.h"
17#include "wext-compat.h"
17 18
18#define IEEE80211_SCAN_RESULT_EXPIRE (15 * HZ) 19#define IEEE80211_SCAN_RESULT_EXPIRE (15 * HZ)
19 20
diff --git a/net/wireless/sme.c b/net/wireless/sme.c
index a19741097989..d2b5d4ce0a00 100644
--- a/net/wireless/sme.c
+++ b/net/wireless/sme.c
@@ -8,6 +8,8 @@
8#include <linux/etherdevice.h> 8#include <linux/etherdevice.h>
9#include <linux/if_arp.h> 9#include <linux/if_arp.h>
10#include <linux/workqueue.h> 10#include <linux/workqueue.h>
11#include <linux/wireless.h>
12#include <net/iw_handler.h>
11#include <net/cfg80211.h> 13#include <net/cfg80211.h>
12#include <net/rtnetlink.h> 14#include <net/rtnetlink.h>
13#include "nl80211.h" 15#include "nl80211.h"
diff --git a/net/wireless/wext-compat.c b/net/wireless/wext-compat.c
index 083e4c33d95d..e4e90e249bab 100644
--- a/net/wireless/wext-compat.c
+++ b/net/wireless/wext-compat.c
@@ -1397,3 +1397,43 @@ int cfg80211_wext_giwessid(struct net_device *dev,
1397 } 1397 }
1398} 1398}
1399EXPORT_SYMBOL_GPL(cfg80211_wext_giwessid); 1399EXPORT_SYMBOL_GPL(cfg80211_wext_giwessid);
1400
1401static const iw_handler cfg80211_handlers[] = {
1402 [IW_IOCTL_IDX(SIOCGIWNAME)] = (iw_handler) cfg80211_wext_giwname,
1403 [IW_IOCTL_IDX(SIOCSIWFREQ)] = (iw_handler) cfg80211_wext_siwfreq,
1404 [IW_IOCTL_IDX(SIOCGIWFREQ)] = (iw_handler) cfg80211_wext_giwfreq,
1405 [IW_IOCTL_IDX(SIOCSIWMODE)] = (iw_handler) cfg80211_wext_siwmode,
1406 [IW_IOCTL_IDX(SIOCGIWMODE)] = (iw_handler) cfg80211_wext_giwmode,
1407 [IW_IOCTL_IDX(SIOCGIWRANGE)] = (iw_handler) cfg80211_wext_giwrange,
1408 [IW_IOCTL_IDX(SIOCSIWAP)] = (iw_handler) cfg80211_wext_siwap,
1409 [IW_IOCTL_IDX(SIOCGIWAP)] = (iw_handler) cfg80211_wext_giwap,
1410 [IW_IOCTL_IDX(SIOCSIWMLME)] = (iw_handler) cfg80211_wext_siwmlme,
1411 [IW_IOCTL_IDX(SIOCSIWSCAN)] = (iw_handler) cfg80211_wext_siwscan,
1412 [IW_IOCTL_IDX(SIOCGIWSCAN)] = (iw_handler) cfg80211_wext_giwscan,
1413 [IW_IOCTL_IDX(SIOCSIWESSID)] = (iw_handler) cfg80211_wext_siwessid,
1414 [IW_IOCTL_IDX(SIOCGIWESSID)] = (iw_handler) cfg80211_wext_giwessid,
1415 [IW_IOCTL_IDX(SIOCSIWRATE)] = (iw_handler) cfg80211_wext_siwrate,
1416 [IW_IOCTL_IDX(SIOCGIWRATE)] = (iw_handler) cfg80211_wext_giwrate,
1417 [IW_IOCTL_IDX(SIOCSIWRTS)] = (iw_handler) cfg80211_wext_siwrts,
1418 [IW_IOCTL_IDX(SIOCGIWRTS)] = (iw_handler) cfg80211_wext_giwrts,
1419 [IW_IOCTL_IDX(SIOCSIWFRAG)] = (iw_handler) cfg80211_wext_siwfrag,
1420 [IW_IOCTL_IDX(SIOCGIWFRAG)] = (iw_handler) cfg80211_wext_giwfrag,
1421 [IW_IOCTL_IDX(SIOCSIWTXPOW)] = (iw_handler) cfg80211_wext_siwtxpower,
1422 [IW_IOCTL_IDX(SIOCGIWTXPOW)] = (iw_handler) cfg80211_wext_giwtxpower,
1423 [IW_IOCTL_IDX(SIOCSIWRETRY)] = (iw_handler) cfg80211_wext_siwretry,
1424 [IW_IOCTL_IDX(SIOCGIWRETRY)] = (iw_handler) cfg80211_wext_giwretry,
1425 [IW_IOCTL_IDX(SIOCSIWENCODE)] = (iw_handler) cfg80211_wext_siwencode,
1426 [IW_IOCTL_IDX(SIOCGIWENCODE)] = (iw_handler) cfg80211_wext_giwencode,
1427 [IW_IOCTL_IDX(SIOCSIWPOWER)] = (iw_handler) cfg80211_wext_siwpower,
1428 [IW_IOCTL_IDX(SIOCGIWPOWER)] = (iw_handler) cfg80211_wext_giwpower,
1429 [IW_IOCTL_IDX(SIOCSIWGENIE)] = (iw_handler) cfg80211_wext_siwgenie,
1430 [IW_IOCTL_IDX(SIOCSIWAUTH)] = (iw_handler) cfg80211_wext_siwauth,
1431 [IW_IOCTL_IDX(SIOCGIWAUTH)] = (iw_handler) cfg80211_wext_giwauth,
1432 [IW_IOCTL_IDX(SIOCSIWENCODEEXT)]= (iw_handler) cfg80211_wext_siwencodeext,
1433};
1434
1435const struct iw_handler_def cfg80211_wext_handler = {
1436 .num_standard = ARRAY_SIZE(cfg80211_handlers),
1437 .standard = cfg80211_handlers,
1438 .get_wireless_stats = cfg80211_wireless_stats,
1439};
diff --git a/net/wireless/wext-compat.h b/net/wireless/wext-compat.h
index c0310d93c2e5..9a3774749589 100644
--- a/net/wireless/wext-compat.h
+++ b/net/wireless/wext-compat.h
@@ -1,6 +1,9 @@
1#ifndef __WEXT_COMPAT 1#ifndef __WEXT_COMPAT
2#define __WEXT_COMPAT 2#define __WEXT_COMPAT
3 3
4#include <net/iw_handler.h>
5#include <linux/wireless.h>
6
4int cfg80211_ibss_wext_siwfreq(struct net_device *dev, 7int cfg80211_ibss_wext_siwfreq(struct net_device *dev,
5 struct iw_request_info *info, 8 struct iw_request_info *info,
6 struct iw_freq *freq, char *extra); 9 struct iw_freq *freq, char *extra);
@@ -42,4 +45,6 @@ int cfg80211_mgd_wext_giwessid(struct net_device *dev,
42struct ieee80211_channel *cfg80211_wext_freq(struct wiphy *wiphy, 45struct ieee80211_channel *cfg80211_wext_freq(struct wiphy *wiphy,
43 struct iw_freq *freq); 46 struct iw_freq *freq);
44 47
48
49extern const struct iw_handler_def cfg80211_wext_handler;
45#endif /* __WEXT_COMPAT */ 50#endif /* __WEXT_COMPAT */