aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
Diffstat (limited to 'net')
-rw-r--r--net/mac80211/cfg.c57
-rw-r--r--net/mac80211/debugfs_netdev.c28
-rw-r--r--net/mac80211/ht.c6
-rw-r--r--net/mac80211/ieee80211_i.h6
-rw-r--r--net/mac80211/iface.c40
-rw-r--r--net/mac80211/key.c6
-rw-r--r--net/mac80211/main.c89
-rw-r--r--net/mac80211/mlme.c40
-rw-r--r--net/mac80211/rx.c65
-rw-r--r--net/mac80211/scan.c8
-rw-r--r--net/mac80211/sta_info.c4
-rw-r--r--net/mac80211/tx.c28
-rw-r--r--net/mac80211/util.c44
-rw-r--r--net/mac80211/wext.c84
14 files changed, 249 insertions, 256 deletions
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 6ec2127f9a60..d004351050cc 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -24,26 +24,19 @@ struct ieee80211_hw *wiphy_to_hw(struct wiphy *wiphy)
24} 24}
25EXPORT_SYMBOL(wiphy_to_hw); 25EXPORT_SYMBOL(wiphy_to_hw);
26 26
27static enum ieee80211_if_types 27static bool nl80211_type_check(enum nl80211_iftype type)
28nl80211_type_to_mac80211_type(enum nl80211_iftype type)
29{ 28{
30 switch (type) { 29 switch (type) {
31 case NL80211_IFTYPE_UNSPECIFIED:
32 return IEEE80211_IF_TYPE_STA;
33 case NL80211_IFTYPE_ADHOC: 30 case NL80211_IFTYPE_ADHOC:
34 return IEEE80211_IF_TYPE_IBSS;
35 case NL80211_IFTYPE_STATION: 31 case NL80211_IFTYPE_STATION:
36 return IEEE80211_IF_TYPE_STA;
37 case NL80211_IFTYPE_MONITOR: 32 case NL80211_IFTYPE_MONITOR:
38 return IEEE80211_IF_TYPE_MNTR;
39#ifdef CONFIG_MAC80211_MESH 33#ifdef CONFIG_MAC80211_MESH
40 case NL80211_IFTYPE_MESH_POINT: 34 case NL80211_IFTYPE_MESH_POINT:
41 return IEEE80211_IF_TYPE_MESH_POINT;
42#endif 35#endif
43 case NL80211_IFTYPE_WDS: 36 case NL80211_IFTYPE_WDS:
44 return IEEE80211_IF_TYPE_WDS; 37 return true;
45 default: 38 default:
46 return IEEE80211_IF_TYPE_INVALID; 39 return false;
47 } 40 }
48} 41}
49 42
@@ -52,17 +45,15 @@ static int ieee80211_add_iface(struct wiphy *wiphy, char *name,
52 struct vif_params *params) 45 struct vif_params *params)
53{ 46{
54 struct ieee80211_local *local = wiphy_priv(wiphy); 47 struct ieee80211_local *local = wiphy_priv(wiphy);
55 enum ieee80211_if_types itype;
56 struct net_device *dev; 48 struct net_device *dev;
57 struct ieee80211_sub_if_data *sdata; 49 struct ieee80211_sub_if_data *sdata;
58 int err; 50 int err;
59 51
60 itype = nl80211_type_to_mac80211_type(type); 52 if (!nl80211_type_check(type))
61 if (itype == IEEE80211_IF_TYPE_INVALID)
62 return -EINVAL; 53 return -EINVAL;
63 54
64 err = ieee80211_if_add(local, name, &dev, itype, params); 55 err = ieee80211_if_add(local, name, &dev, type, params);
65 if (err || itype != IEEE80211_IF_TYPE_MNTR || !flags) 56 if (err || type != NL80211_IFTYPE_MONITOR || !flags)
66 return err; 57 return err;
67 58
68 sdata = IEEE80211_DEV_TO_SUB_IF(dev); 59 sdata = IEEE80211_DEV_TO_SUB_IF(dev);
@@ -93,7 +84,6 @@ static int ieee80211_change_iface(struct wiphy *wiphy, int ifindex,
93{ 84{
94 struct ieee80211_local *local = wiphy_priv(wiphy); 85 struct ieee80211_local *local = wiphy_priv(wiphy);
95 struct net_device *dev; 86 struct net_device *dev;
96 enum ieee80211_if_types itype;
97 struct ieee80211_sub_if_data *sdata; 87 struct ieee80211_sub_if_data *sdata;
98 int ret; 88 int ret;
99 89
@@ -102,8 +92,7 @@ static int ieee80211_change_iface(struct wiphy *wiphy, int ifindex,
102 if (!dev) 92 if (!dev)
103 return -ENODEV; 93 return -ENODEV;
104 94
105 itype = nl80211_type_to_mac80211_type(type); 95 if (!nl80211_type_check(type))
106 if (itype == IEEE80211_IF_TYPE_INVALID)
107 return -EINVAL; 96 return -EINVAL;
108 97
109 if (dev == local->mdev) 98 if (dev == local->mdev)
@@ -111,7 +100,7 @@ static int ieee80211_change_iface(struct wiphy *wiphy, int ifindex,
111 100
112 sdata = IEEE80211_DEV_TO_SUB_IF(dev); 101 sdata = IEEE80211_DEV_TO_SUB_IF(dev);
113 102
114 ret = ieee80211_if_change_type(sdata, itype); 103 ret = ieee80211_if_change_type(sdata, type);
115 if (ret) 104 if (ret)
116 return ret; 105 return ret;
117 106
@@ -120,7 +109,7 @@ static int ieee80211_change_iface(struct wiphy *wiphy, int ifindex,
120 params->mesh_id_len, 109 params->mesh_id_len,
121 params->mesh_id); 110 params->mesh_id);
122 111
123 if (sdata->vif.type != IEEE80211_IF_TYPE_MNTR || !flags) 112 if (sdata->vif.type != NL80211_IFTYPE_MONITOR || !flags)
124 return 0; 113 return 0;
125 114
126 sdata->u.mntr_flags = *flags; 115 sdata->u.mntr_flags = *flags;
@@ -516,7 +505,7 @@ static int ieee80211_add_beacon(struct wiphy *wiphy, struct net_device *dev,
516 505
517 sdata = IEEE80211_DEV_TO_SUB_IF(dev); 506 sdata = IEEE80211_DEV_TO_SUB_IF(dev);
518 507
519 if (sdata->vif.type != IEEE80211_IF_TYPE_AP) 508 if (sdata->vif.type != NL80211_IFTYPE_AP)
520 return -EINVAL; 509 return -EINVAL;
521 510
522 old = sdata->u.ap.beacon; 511 old = sdata->u.ap.beacon;
@@ -539,7 +528,7 @@ static int ieee80211_set_beacon(struct wiphy *wiphy, struct net_device *dev,
539 528
540 sdata = IEEE80211_DEV_TO_SUB_IF(dev); 529 sdata = IEEE80211_DEV_TO_SUB_IF(dev);
541 530
542 if (sdata->vif.type != IEEE80211_IF_TYPE_AP) 531 if (sdata->vif.type != NL80211_IFTYPE_AP)
543 return -EINVAL; 532 return -EINVAL;
544 533
545 old = sdata->u.ap.beacon; 534 old = sdata->u.ap.beacon;
@@ -561,7 +550,7 @@ static int ieee80211_del_beacon(struct wiphy *wiphy, struct net_device *dev)
561 550
562 sdata = IEEE80211_DEV_TO_SUB_IF(dev); 551 sdata = IEEE80211_DEV_TO_SUB_IF(dev);
563 552
564 if (sdata->vif.type != IEEE80211_IF_TYPE_AP) 553 if (sdata->vif.type != NL80211_IFTYPE_AP)
565 return -EINVAL; 554 return -EINVAL;
566 555
567 old = sdata->u.ap.beacon; 556 old = sdata->u.ap.beacon;
@@ -716,8 +705,8 @@ static int ieee80211_add_station(struct wiphy *wiphy, struct net_device *dev,
716 if (params->vlan) { 705 if (params->vlan) {
717 sdata = IEEE80211_DEV_TO_SUB_IF(params->vlan); 706 sdata = IEEE80211_DEV_TO_SUB_IF(params->vlan);
718 707
719 if (sdata->vif.type != IEEE80211_IF_TYPE_VLAN && 708 if (sdata->vif.type != NL80211_IFTYPE_AP_VLAN &&
720 sdata->vif.type != IEEE80211_IF_TYPE_AP) 709 sdata->vif.type != NL80211_IFTYPE_AP)
721 return -EINVAL; 710 return -EINVAL;
722 } else 711 } else
723 sdata = IEEE80211_DEV_TO_SUB_IF(dev); 712 sdata = IEEE80211_DEV_TO_SUB_IF(dev);
@@ -747,8 +736,8 @@ static int ieee80211_add_station(struct wiphy *wiphy, struct net_device *dev,
747 return err; 736 return err;
748 } 737 }
749 738
750 if (sdata->vif.type == IEEE80211_IF_TYPE_VLAN || 739 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN ||
751 sdata->vif.type == IEEE80211_IF_TYPE_AP) 740 sdata->vif.type == NL80211_IFTYPE_AP)
752 ieee80211_send_layer2_update(sta); 741 ieee80211_send_layer2_update(sta);
753 742
754 rcu_read_unlock(); 743 rcu_read_unlock();
@@ -812,8 +801,8 @@ static int ieee80211_change_station(struct wiphy *wiphy,
812 if (params->vlan && params->vlan != sta->sdata->dev) { 801 if (params->vlan && params->vlan != sta->sdata->dev) {
813 vlansdata = IEEE80211_DEV_TO_SUB_IF(params->vlan); 802 vlansdata = IEEE80211_DEV_TO_SUB_IF(params->vlan);
814 803
815 if (vlansdata->vif.type != IEEE80211_IF_TYPE_VLAN && 804 if (vlansdata->vif.type != NL80211_IFTYPE_AP_VLAN &&
816 vlansdata->vif.type != IEEE80211_IF_TYPE_AP) { 805 vlansdata->vif.type != NL80211_IFTYPE_AP) {
817 rcu_read_unlock(); 806 rcu_read_unlock();
818 return -EINVAL; 807 return -EINVAL;
819 } 808 }
@@ -847,7 +836,7 @@ static int ieee80211_add_mpath(struct wiphy *wiphy, struct net_device *dev,
847 836
848 sdata = IEEE80211_DEV_TO_SUB_IF(dev); 837 sdata = IEEE80211_DEV_TO_SUB_IF(dev);
849 838
850 if (sdata->vif.type != IEEE80211_IF_TYPE_MESH_POINT) 839 if (sdata->vif.type != NL80211_IFTYPE_MESH_POINT)
851 return -ENOTSUPP; 840 return -ENOTSUPP;
852 841
853 rcu_read_lock(); 842 rcu_read_lock();
@@ -903,7 +892,7 @@ static int ieee80211_change_mpath(struct wiphy *wiphy,
903 892
904 sdata = IEEE80211_DEV_TO_SUB_IF(dev); 893 sdata = IEEE80211_DEV_TO_SUB_IF(dev);
905 894
906 if (sdata->vif.type != IEEE80211_IF_TYPE_MESH_POINT) 895 if (sdata->vif.type != NL80211_IFTYPE_MESH_POINT)
907 return -ENOTSUPP; 896 return -ENOTSUPP;
908 897
909 rcu_read_lock(); 898 rcu_read_lock();
@@ -978,7 +967,7 @@ static int ieee80211_get_mpath(struct wiphy *wiphy, struct net_device *dev,
978 967
979 sdata = IEEE80211_DEV_TO_SUB_IF(dev); 968 sdata = IEEE80211_DEV_TO_SUB_IF(dev);
980 969
981 if (sdata->vif.type != IEEE80211_IF_TYPE_MESH_POINT) 970 if (sdata->vif.type != NL80211_IFTYPE_MESH_POINT)
982 return -ENOTSUPP; 971 return -ENOTSUPP;
983 972
984 rcu_read_lock(); 973 rcu_read_lock();
@@ -1006,7 +995,7 @@ static int ieee80211_dump_mpath(struct wiphy *wiphy, struct net_device *dev,
1006 995
1007 sdata = IEEE80211_DEV_TO_SUB_IF(dev); 996 sdata = IEEE80211_DEV_TO_SUB_IF(dev);
1008 997
1009 if (sdata->vif.type != IEEE80211_IF_TYPE_MESH_POINT) 998 if (sdata->vif.type != NL80211_IFTYPE_MESH_POINT)
1010 return -ENOTSUPP; 999 return -ENOTSUPP;
1011 1000
1012 rcu_read_lock(); 1001 rcu_read_lock();
@@ -1035,7 +1024,7 @@ static int ieee80211_change_bss(struct wiphy *wiphy,
1035 1024
1036 sdata = IEEE80211_DEV_TO_SUB_IF(dev); 1025 sdata = IEEE80211_DEV_TO_SUB_IF(dev);
1037 1026
1038 if (sdata->vif.type != IEEE80211_IF_TYPE_AP) 1027 if (sdata->vif.type != NL80211_IFTYPE_AP)
1039 return -EINVAL; 1028 return -EINVAL;
1040 1029
1041 if (params->use_cts_prot >= 0) { 1030 if (params->use_cts_prot >= 0) {
diff --git a/net/mac80211/debugfs_netdev.c b/net/mac80211/debugfs_netdev.c
index 0fa7681a3d20..1b33cad24abc 100644
--- a/net/mac80211/debugfs_netdev.c
+++ b/net/mac80211/debugfs_netdev.c
@@ -345,26 +345,26 @@ static void add_files(struct ieee80211_sub_if_data *sdata)
345 return; 345 return;
346 346
347 switch (sdata->vif.type) { 347 switch (sdata->vif.type) {
348 case IEEE80211_IF_TYPE_MESH_POINT: 348 case NL80211_IFTYPE_MESH_POINT:
349#ifdef CONFIG_MAC80211_MESH 349#ifdef CONFIG_MAC80211_MESH
350 add_mesh_stats(sdata); 350 add_mesh_stats(sdata);
351 add_mesh_config(sdata); 351 add_mesh_config(sdata);
352#endif 352#endif
353 break; 353 break;
354 case IEEE80211_IF_TYPE_STA: 354 case NL80211_IFTYPE_STATION:
355 case IEEE80211_IF_TYPE_IBSS: 355 case NL80211_IFTYPE_ADHOC:
356 add_sta_files(sdata); 356 add_sta_files(sdata);
357 break; 357 break;
358 case IEEE80211_IF_TYPE_AP: 358 case NL80211_IFTYPE_AP:
359 add_ap_files(sdata); 359 add_ap_files(sdata);
360 break; 360 break;
361 case IEEE80211_IF_TYPE_WDS: 361 case NL80211_IFTYPE_WDS:
362 add_wds_files(sdata); 362 add_wds_files(sdata);
363 break; 363 break;
364 case IEEE80211_IF_TYPE_MNTR: 364 case NL80211_IFTYPE_MONITOR:
365 add_monitor_files(sdata); 365 add_monitor_files(sdata);
366 break; 366 break;
367 case IEEE80211_IF_TYPE_VLAN: 367 case NL80211_IFTYPE_AP_VLAN:
368 add_vlan_files(sdata); 368 add_vlan_files(sdata);
369 break; 369 break;
370 default: 370 default:
@@ -482,26 +482,26 @@ static void del_files(struct ieee80211_sub_if_data *sdata)
482 return; 482 return;
483 483
484 switch (sdata->vif.type) { 484 switch (sdata->vif.type) {
485 case IEEE80211_IF_TYPE_MESH_POINT: 485 case NL80211_IFTYPE_MESH_POINT:
486#ifdef CONFIG_MAC80211_MESH 486#ifdef CONFIG_MAC80211_MESH
487 del_mesh_stats(sdata); 487 del_mesh_stats(sdata);
488 del_mesh_config(sdata); 488 del_mesh_config(sdata);
489#endif 489#endif
490 break; 490 break;
491 case IEEE80211_IF_TYPE_STA: 491 case NL80211_IFTYPE_STATION:
492 case IEEE80211_IF_TYPE_IBSS: 492 case NL80211_IFTYPE_ADHOC:
493 del_sta_files(sdata); 493 del_sta_files(sdata);
494 break; 494 break;
495 case IEEE80211_IF_TYPE_AP: 495 case NL80211_IFTYPE_AP:
496 del_ap_files(sdata); 496 del_ap_files(sdata);
497 break; 497 break;
498 case IEEE80211_IF_TYPE_WDS: 498 case NL80211_IFTYPE_WDS:
499 del_wds_files(sdata); 499 del_wds_files(sdata);
500 break; 500 break;
501 case IEEE80211_IF_TYPE_MNTR: 501 case NL80211_IFTYPE_MONITOR:
502 del_monitor_files(sdata); 502 del_monitor_files(sdata);
503 break; 503 break;
504 case IEEE80211_IF_TYPE_VLAN: 504 case NL80211_IFTYPE_AP_VLAN:
505 del_vlan_files(sdata); 505 del_vlan_files(sdata);
506 break; 506 break;
507 default: 507 default:
diff --git a/net/mac80211/ht.c b/net/mac80211/ht.c
index 4dc35c9dabc7..bc3c71ad7ae3 100644
--- a/net/mac80211/ht.c
+++ b/net/mac80211/ht.c
@@ -89,7 +89,7 @@ static void ieee80211_send_addba_request(struct ieee80211_sub_if_data *sdata,
89 memset(mgmt, 0, 24); 89 memset(mgmt, 0, 24);
90 memcpy(mgmt->da, da, ETH_ALEN); 90 memcpy(mgmt->da, da, ETH_ALEN);
91 memcpy(mgmt->sa, sdata->dev->dev_addr, ETH_ALEN); 91 memcpy(mgmt->sa, sdata->dev->dev_addr, ETH_ALEN);
92 if (sdata->vif.type == IEEE80211_IF_TYPE_AP) 92 if (sdata->vif.type == NL80211_IFTYPE_AP)
93 memcpy(mgmt->bssid, sdata->dev->dev_addr, ETH_ALEN); 93 memcpy(mgmt->bssid, sdata->dev->dev_addr, ETH_ALEN);
94 else 94 else
95 memcpy(mgmt->bssid, ifsta->bssid, ETH_ALEN); 95 memcpy(mgmt->bssid, ifsta->bssid, ETH_ALEN);
@@ -139,7 +139,7 @@ static void ieee80211_send_addba_resp(struct ieee80211_sub_if_data *sdata, u8 *d
139 memset(mgmt, 0, 24); 139 memset(mgmt, 0, 24);
140 memcpy(mgmt->da, da, ETH_ALEN); 140 memcpy(mgmt->da, da, ETH_ALEN);
141 memcpy(mgmt->sa, sdata->dev->dev_addr, ETH_ALEN); 141 memcpy(mgmt->sa, sdata->dev->dev_addr, ETH_ALEN);
142 if (sdata->vif.type == IEEE80211_IF_TYPE_AP) 142 if (sdata->vif.type == NL80211_IFTYPE_AP)
143 memcpy(mgmt->bssid, sdata->dev->dev_addr, ETH_ALEN); 143 memcpy(mgmt->bssid, sdata->dev->dev_addr, ETH_ALEN);
144 else 144 else
145 memcpy(mgmt->bssid, ifsta->bssid, ETH_ALEN); 145 memcpy(mgmt->bssid, ifsta->bssid, ETH_ALEN);
@@ -185,7 +185,7 @@ static void ieee80211_send_delba(struct ieee80211_sub_if_data *sdata,
185 memset(mgmt, 0, 24); 185 memset(mgmt, 0, 24);
186 memcpy(mgmt->da, da, ETH_ALEN); 186 memcpy(mgmt->da, da, ETH_ALEN);
187 memcpy(mgmt->sa, sdata->dev->dev_addr, ETH_ALEN); 187 memcpy(mgmt->sa, sdata->dev->dev_addr, ETH_ALEN);
188 if (sdata->vif.type == IEEE80211_IF_TYPE_AP) 188 if (sdata->vif.type == NL80211_IFTYPE_AP)
189 memcpy(mgmt->bssid, sdata->dev->dev_addr, ETH_ALEN); 189 memcpy(mgmt->bssid, sdata->dev->dev_addr, ETH_ALEN);
190 else 190 else
191 memcpy(mgmt->bssid, ifsta->bssid, ETH_ALEN); 191 memcpy(mgmt->bssid, ifsta->bssid, ETH_ALEN);
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index 21cc6d07b020..80d88f5ff90c 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -954,10 +954,10 @@ void ieee80211_rx_bss_put(struct ieee80211_local *local,
954/* interface handling */ 954/* interface handling */
955void ieee80211_if_setup(struct net_device *dev); 955void ieee80211_if_setup(struct net_device *dev);
956int ieee80211_if_add(struct ieee80211_local *local, const char *name, 956int ieee80211_if_add(struct ieee80211_local *local, const char *name,
957 struct net_device **new_dev, enum ieee80211_if_types type, 957 struct net_device **new_dev, enum nl80211_iftype type,
958 struct vif_params *params); 958 struct vif_params *params);
959int ieee80211_if_change_type(struct ieee80211_sub_if_data *sdata, 959int ieee80211_if_change_type(struct ieee80211_sub_if_data *sdata,
960 enum ieee80211_if_types type); 960 enum nl80211_iftype type);
961void ieee80211_if_remove(struct ieee80211_sub_if_data *sdata); 961void ieee80211_if_remove(struct ieee80211_sub_if_data *sdata);
962void ieee80211_remove_interfaces(struct ieee80211_local *local); 962void ieee80211_remove_interfaces(struct ieee80211_local *local);
963 963
@@ -1001,7 +1001,7 @@ extern void *mac80211_wiphy_privid; /* for wiphy privid */
1001extern const unsigned char rfc1042_header[6]; 1001extern const unsigned char rfc1042_header[6];
1002extern const unsigned char bridge_tunnel_header[6]; 1002extern const unsigned char bridge_tunnel_header[6];
1003u8 *ieee80211_get_bssid(struct ieee80211_hdr *hdr, size_t len, 1003u8 *ieee80211_get_bssid(struct ieee80211_hdr *hdr, size_t len,
1004 enum ieee80211_if_types type); 1004 enum nl80211_iftype type);
1005int ieee80211_frame_duration(struct ieee80211_local *local, size_t len, 1005int ieee80211_frame_duration(struct ieee80211_local *local, size_t len,
1006 int rate, int erp, int short_preamble); 1006 int rate, int erp, int short_preamble);
1007void mac80211_ev_michael_mic_failure(struct ieee80211_sub_if_data *sdata, int keyidx, 1007void mac80211_ev_michael_mic_failure(struct ieee80211_sub_if_data *sdata, int keyidx,
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index dab8eba2602f..004fb23241da 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -41,7 +41,7 @@ static void ieee80211_teardown_sdata(struct net_device *dev)
41 sdata->fragment_next = 0; 41 sdata->fragment_next = 0;
42 42
43 switch (sdata->vif.type) { 43 switch (sdata->vif.type) {
44 case IEEE80211_IF_TYPE_AP: 44 case NL80211_IFTYPE_AP:
45 beacon = sdata->u.ap.beacon; 45 beacon = sdata->u.ap.beacon;
46 rcu_assign_pointer(sdata->u.ap.beacon, NULL); 46 rcu_assign_pointer(sdata->u.ap.beacon, NULL);
47 synchronize_rcu(); 47 synchronize_rcu();
@@ -53,22 +53,23 @@ static void ieee80211_teardown_sdata(struct net_device *dev)
53 } 53 }
54 54
55 break; 55 break;
56 case IEEE80211_IF_TYPE_MESH_POINT: 56 case NL80211_IFTYPE_MESH_POINT:
57 if (ieee80211_vif_is_mesh(&sdata->vif)) 57 if (ieee80211_vif_is_mesh(&sdata->vif))
58 mesh_rmc_free(sdata); 58 mesh_rmc_free(sdata);
59 break; 59 break;
60 case IEEE80211_IF_TYPE_STA: 60 case NL80211_IFTYPE_STATION:
61 case IEEE80211_IF_TYPE_IBSS: 61 case NL80211_IFTYPE_ADHOC:
62 kfree(sdata->u.sta.extra_ie); 62 kfree(sdata->u.sta.extra_ie);
63 kfree(sdata->u.sta.assocreq_ies); 63 kfree(sdata->u.sta.assocreq_ies);
64 kfree(sdata->u.sta.assocresp_ies); 64 kfree(sdata->u.sta.assocresp_ies);
65 kfree_skb(sdata->u.sta.probe_resp); 65 kfree_skb(sdata->u.sta.probe_resp);
66 break; 66 break;
67 case IEEE80211_IF_TYPE_WDS: 67 case NL80211_IFTYPE_WDS:
68 case IEEE80211_IF_TYPE_VLAN: 68 case NL80211_IFTYPE_AP_VLAN:
69 case IEEE80211_IF_TYPE_MNTR: 69 case NL80211_IFTYPE_MONITOR:
70 break; 70 break;
71 case IEEE80211_IF_TYPE_INVALID: 71 case NL80211_IFTYPE_UNSPECIFIED:
72 case __NL80211_IFTYPE_AFTER_LAST:
72 BUG(); 73 BUG();
73 break; 74 break;
74 } 75 }
@@ -81,7 +82,7 @@ static void ieee80211_teardown_sdata(struct net_device *dev)
81 * Helper function to initialise an interface to a specific type. 82 * Helper function to initialise an interface to a specific type.
82 */ 83 */
83static void ieee80211_setup_sdata(struct ieee80211_sub_if_data *sdata, 84static void ieee80211_setup_sdata(struct ieee80211_sub_if_data *sdata,
84 enum ieee80211_if_types type) 85 enum nl80211_iftype type)
85{ 86{
86 /* clear type-dependent union */ 87 /* clear type-dependent union */
87 memset(&sdata->u, 0, sizeof(sdata->u)); 88 memset(&sdata->u, 0, sizeof(sdata->u));
@@ -93,28 +94,29 @@ static void ieee80211_setup_sdata(struct ieee80211_sub_if_data *sdata,
93 sdata->dev->type = ARPHRD_ETHER; 94 sdata->dev->type = ARPHRD_ETHER;
94 95
95 switch (type) { 96 switch (type) {
96 case IEEE80211_IF_TYPE_AP: 97 case NL80211_IFTYPE_AP:
97 skb_queue_head_init(&sdata->u.ap.ps_bc_buf); 98 skb_queue_head_init(&sdata->u.ap.ps_bc_buf);
98 INIT_LIST_HEAD(&sdata->u.ap.vlans); 99 INIT_LIST_HEAD(&sdata->u.ap.vlans);
99 break; 100 break;
100 case IEEE80211_IF_TYPE_STA: 101 case NL80211_IFTYPE_STATION:
101 case IEEE80211_IF_TYPE_IBSS: 102 case NL80211_IFTYPE_ADHOC:
102 ieee80211_sta_setup_sdata(sdata); 103 ieee80211_sta_setup_sdata(sdata);
103 break; 104 break;
104 case IEEE80211_IF_TYPE_MESH_POINT: 105 case NL80211_IFTYPE_MESH_POINT:
105 if (ieee80211_vif_is_mesh(&sdata->vif)) 106 if (ieee80211_vif_is_mesh(&sdata->vif))
106 ieee80211_mesh_init_sdata(sdata); 107 ieee80211_mesh_init_sdata(sdata);
107 break; 108 break;
108 case IEEE80211_IF_TYPE_MNTR: 109 case NL80211_IFTYPE_MONITOR:
109 sdata->dev->type = ARPHRD_IEEE80211_RADIOTAP; 110 sdata->dev->type = ARPHRD_IEEE80211_RADIOTAP;
110 sdata->dev->hard_start_xmit = ieee80211_monitor_start_xmit; 111 sdata->dev->hard_start_xmit = ieee80211_monitor_start_xmit;
111 sdata->u.mntr_flags = MONITOR_FLAG_CONTROL | 112 sdata->u.mntr_flags = MONITOR_FLAG_CONTROL |
112 MONITOR_FLAG_OTHER_BSS; 113 MONITOR_FLAG_OTHER_BSS;
113 break; 114 break;
114 case IEEE80211_IF_TYPE_WDS: 115 case NL80211_IFTYPE_WDS:
115 case IEEE80211_IF_TYPE_VLAN: 116 case NL80211_IFTYPE_AP_VLAN:
116 break; 117 break;
117 case IEEE80211_IF_TYPE_INVALID: 118 case NL80211_IFTYPE_UNSPECIFIED:
119 case __NL80211_IFTYPE_AFTER_LAST:
118 BUG(); 120 BUG();
119 break; 121 break;
120 } 122 }
@@ -123,7 +125,7 @@ static void ieee80211_setup_sdata(struct ieee80211_sub_if_data *sdata,
123} 125}
124 126
125int ieee80211_if_change_type(struct ieee80211_sub_if_data *sdata, 127int ieee80211_if_change_type(struct ieee80211_sub_if_data *sdata,
126 enum ieee80211_if_types type) 128 enum nl80211_iftype type)
127{ 129{
128 ASSERT_RTNL(); 130 ASSERT_RTNL();
129 131
@@ -153,7 +155,7 @@ int ieee80211_if_change_type(struct ieee80211_sub_if_data *sdata,
153} 155}
154 156
155int ieee80211_if_add(struct ieee80211_local *local, const char *name, 157int ieee80211_if_add(struct ieee80211_local *local, const char *name,
156 struct net_device **new_dev, enum ieee80211_if_types type, 158 struct net_device **new_dev, enum nl80211_iftype type,
157 struct vif_params *params) 159 struct vif_params *params)
158{ 160{
159 struct net_device *ndev; 161 struct net_device *ndev;
diff --git a/net/mac80211/key.c b/net/mac80211/key.c
index 6597c779e35a..d5b95748db2a 100644
--- a/net/mac80211/key.c
+++ b/net/mac80211/key.c
@@ -118,8 +118,8 @@ static const u8 *get_mac_for_key(struct ieee80211_key *key)
118 * address to indicate a transmit-only key. 118 * address to indicate a transmit-only key.
119 */ 119 */
120 if (key->conf.alg != ALG_WEP && 120 if (key->conf.alg != ALG_WEP &&
121 (key->sdata->vif.type == IEEE80211_IF_TYPE_AP || 121 (key->sdata->vif.type == NL80211_IFTYPE_AP ||
122 key->sdata->vif.type == IEEE80211_IF_TYPE_VLAN)) 122 key->sdata->vif.type == NL80211_IFTYPE_AP_VLAN))
123 addr = zero_addr; 123 addr = zero_addr;
124 124
125 if (key->sta) 125 if (key->sta)
@@ -331,7 +331,7 @@ void ieee80211_key_link(struct ieee80211_key *key,
331 */ 331 */
332 key->conf.flags |= IEEE80211_KEY_FLAG_PAIRWISE; 332 key->conf.flags |= IEEE80211_KEY_FLAG_PAIRWISE;
333 } else { 333 } else {
334 if (sdata->vif.type == IEEE80211_IF_TYPE_STA) { 334 if (sdata->vif.type == NL80211_IFTYPE_STATION) {
335 struct sta_info *ap; 335 struct sta_info *ap;
336 336
337 /* 337 /*
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index 4c424acc01a4..584a75bd6cfe 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -146,7 +146,7 @@ static int ieee80211_change_mtu(struct net_device *dev, int new_mtu)
146 int meshhdrlen; 146 int meshhdrlen;
147 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); 147 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
148 148
149 meshhdrlen = (sdata->vif.type == IEEE80211_IF_TYPE_MESH_POINT) ? 5 : 0; 149 meshhdrlen = (sdata->vif.type == NL80211_IFTYPE_MESH_POINT) ? 5 : 0;
150 150
151 /* FIX: what would be proper limits for MTU? 151 /* FIX: what would be proper limits for MTU?
152 * This interface uses 802.3 frames. */ 152 * This interface uses 802.3 frames. */
@@ -164,18 +164,16 @@ static int ieee80211_change_mtu(struct net_device *dev, int new_mtu)
164 164
165static inline int identical_mac_addr_allowed(int type1, int type2) 165static inline int identical_mac_addr_allowed(int type1, int type2)
166{ 166{
167 return (type1 == IEEE80211_IF_TYPE_MNTR || 167 return type1 == NL80211_IFTYPE_MONITOR ||
168 type2 == IEEE80211_IF_TYPE_MNTR || 168 type2 == NL80211_IFTYPE_MONITOR ||
169 (type1 == IEEE80211_IF_TYPE_AP && 169 (type1 == NL80211_IFTYPE_AP && type2 == NL80211_IFTYPE_WDS) ||
170 type2 == IEEE80211_IF_TYPE_WDS) || 170 (type1 == NL80211_IFTYPE_WDS &&
171 (type1 == IEEE80211_IF_TYPE_WDS && 171 (type2 == NL80211_IFTYPE_WDS ||
172 (type2 == IEEE80211_IF_TYPE_WDS || 172 type2 == NL80211_IFTYPE_AP)) ||
173 type2 == IEEE80211_IF_TYPE_AP)) || 173 (type1 == NL80211_IFTYPE_AP && type2 == NL80211_IFTYPE_AP_VLAN) ||
174 (type1 == IEEE80211_IF_TYPE_AP && 174 (type1 == NL80211_IFTYPE_AP_VLAN &&
175 type2 == IEEE80211_IF_TYPE_VLAN) || 175 (type2 == NL80211_IFTYPE_AP ||
176 (type1 == IEEE80211_IF_TYPE_VLAN && 176 type2 == NL80211_IFTYPE_AP_VLAN));
177 (type2 == IEEE80211_IF_TYPE_AP ||
178 type2 == IEEE80211_IF_TYPE_VLAN)));
179} 177}
180 178
181static int ieee80211_open(struct net_device *dev) 179static int ieee80211_open(struct net_device *dev)
@@ -211,8 +209,8 @@ static int ieee80211_open(struct net_device *dev)
211 * belonging to the same hardware. Then, however, we're 209 * belonging to the same hardware. Then, however, we're
212 * faced with having to adopt two different TSF timers... 210 * faced with having to adopt two different TSF timers...
213 */ 211 */
214 if (sdata->vif.type == IEEE80211_IF_TYPE_IBSS && 212 if (sdata->vif.type == NL80211_IFTYPE_ADHOC &&
215 nsdata->vif.type == IEEE80211_IF_TYPE_IBSS) 213 nsdata->vif.type == NL80211_IFTYPE_ADHOC)
216 return -EBUSY; 214 return -EBUSY;
217 215
218 /* 216 /*
@@ -232,37 +230,38 @@ static int ieee80211_open(struct net_device *dev)
232 /* 230 /*
233 * can only add VLANs to enabled APs 231 * can only add VLANs to enabled APs
234 */ 232 */
235 if (sdata->vif.type == IEEE80211_IF_TYPE_VLAN && 233 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN &&
236 nsdata->vif.type == IEEE80211_IF_TYPE_AP) 234 nsdata->vif.type == NL80211_IFTYPE_AP)
237 sdata->bss = &nsdata->u.ap; 235 sdata->bss = &nsdata->u.ap;
238 } 236 }
239 } 237 }
240 238
241 switch (sdata->vif.type) { 239 switch (sdata->vif.type) {
242 case IEEE80211_IF_TYPE_WDS: 240 case NL80211_IFTYPE_WDS:
243 if (!is_valid_ether_addr(sdata->u.wds.remote_addr)) 241 if (!is_valid_ether_addr(sdata->u.wds.remote_addr))
244 return -ENOLINK; 242 return -ENOLINK;
245 break; 243 break;
246 case IEEE80211_IF_TYPE_VLAN: 244 case NL80211_IFTYPE_AP_VLAN:
247 if (!sdata->bss) 245 if (!sdata->bss)
248 return -ENOLINK; 246 return -ENOLINK;
249 list_add(&sdata->u.vlan.list, &sdata->bss->vlans); 247 list_add(&sdata->u.vlan.list, &sdata->bss->vlans);
250 break; 248 break;
251 case IEEE80211_IF_TYPE_AP: 249 case NL80211_IFTYPE_AP:
252 sdata->bss = &sdata->u.ap; 250 sdata->bss = &sdata->u.ap;
253 break; 251 break;
254 case IEEE80211_IF_TYPE_MESH_POINT: 252 case NL80211_IFTYPE_MESH_POINT:
255 if (!ieee80211_vif_is_mesh(&sdata->vif)) 253 if (!ieee80211_vif_is_mesh(&sdata->vif))
256 break; 254 break;
257 /* mesh ifaces must set allmulti to forward mcast traffic */ 255 /* mesh ifaces must set allmulti to forward mcast traffic */
258 atomic_inc(&local->iff_allmultis); 256 atomic_inc(&local->iff_allmultis);
259 break; 257 break;
260 case IEEE80211_IF_TYPE_STA: 258 case NL80211_IFTYPE_STATION:
261 case IEEE80211_IF_TYPE_MNTR: 259 case NL80211_IFTYPE_MONITOR:
262 case IEEE80211_IF_TYPE_IBSS: 260 case NL80211_IFTYPE_ADHOC:
263 /* no special treatment */ 261 /* no special treatment */
264 break; 262 break;
265 case IEEE80211_IF_TYPE_INVALID: 263 case NL80211_IFTYPE_UNSPECIFIED:
264 case __NL80211_IFTYPE_AFTER_LAST:
266 /* cannot happen */ 265 /* cannot happen */
267 WARN_ON(1); 266 WARN_ON(1);
268 break; 267 break;
@@ -309,10 +308,10 @@ static int ieee80211_open(struct net_device *dev)
309 } 308 }
310 309
311 switch (sdata->vif.type) { 310 switch (sdata->vif.type) {
312 case IEEE80211_IF_TYPE_VLAN: 311 case NL80211_IFTYPE_AP_VLAN:
313 /* no need to tell driver */ 312 /* no need to tell driver */
314 break; 313 break;
315 case IEEE80211_IF_TYPE_MNTR: 314 case NL80211_IFTYPE_MONITOR:
316 if (sdata->u.mntr_flags & MONITOR_FLAG_COOK_FRAMES) { 315 if (sdata->u.mntr_flags & MONITOR_FLAG_COOK_FRAMES) {
317 local->cooked_mntrs++; 316 local->cooked_mntrs++;
318 break; 317 break;
@@ -336,8 +335,8 @@ static int ieee80211_open(struct net_device *dev)
336 ieee80211_configure_filter(local); 335 ieee80211_configure_filter(local);
337 netif_addr_unlock_bh(local->mdev); 336 netif_addr_unlock_bh(local->mdev);
338 break; 337 break;
339 case IEEE80211_IF_TYPE_STA: 338 case NL80211_IFTYPE_STATION:
340 case IEEE80211_IF_TYPE_IBSS: 339 case NL80211_IFTYPE_ADHOC:
341 sdata->u.sta.flags &= ~IEEE80211_STA_PREV_BSSID_SET; 340 sdata->u.sta.flags &= ~IEEE80211_STA_PREV_BSSID_SET;
342 /* fall through */ 341 /* fall through */
343 default: 342 default:
@@ -354,14 +353,14 @@ static int ieee80211_open(struct net_device *dev)
354 ieee80211_bss_info_change_notify(sdata, changed); 353 ieee80211_bss_info_change_notify(sdata, changed);
355 ieee80211_enable_keys(sdata); 354 ieee80211_enable_keys(sdata);
356 355
357 if (sdata->vif.type == IEEE80211_IF_TYPE_STA && 356 if (sdata->vif.type == NL80211_IFTYPE_STATION &&
358 !(sdata->flags & IEEE80211_SDATA_USERSPACE_MLME)) 357 !(sdata->flags & IEEE80211_SDATA_USERSPACE_MLME))
359 netif_carrier_off(dev); 358 netif_carrier_off(dev);
360 else 359 else
361 netif_carrier_on(dev); 360 netif_carrier_on(dev);
362 } 361 }
363 362
364 if (sdata->vif.type == IEEE80211_IF_TYPE_WDS) { 363 if (sdata->vif.type == NL80211_IFTYPE_WDS) {
365 /* Create STA entry for the WDS peer */ 364 /* Create STA entry for the WDS peer */
366 sta = sta_info_alloc(sdata, sdata->u.wds.remote_addr, 365 sta = sta_info_alloc(sdata, sdata->u.wds.remote_addr,
367 GFP_KERNEL); 366 GFP_KERNEL);
@@ -417,8 +416,8 @@ static int ieee80211_open(struct net_device *dev)
417 * yet be effective. Trigger execution of ieee80211_sta_work 416 * yet be effective. Trigger execution of ieee80211_sta_work
418 * to fix this. 417 * to fix this.
419 */ 418 */
420 if (sdata->vif.type == IEEE80211_IF_TYPE_STA || 419 if (sdata->vif.type == NL80211_IFTYPE_STATION ||
421 sdata->vif.type == IEEE80211_IF_TYPE_IBSS) { 420 sdata->vif.type == NL80211_IFTYPE_ADHOC) {
422 struct ieee80211_if_sta *ifsta = &sdata->u.sta; 421 struct ieee80211_if_sta *ifsta = &sdata->u.sta;
423 queue_work(local->hw.workqueue, &ifsta->work); 422 queue_work(local->hw.workqueue, &ifsta->work);
424 } 423 }
@@ -433,7 +432,7 @@ static int ieee80211_open(struct net_device *dev)
433 local->ops->stop(local_to_hw(local)); 432 local->ops->stop(local_to_hw(local));
434 err_del_bss: 433 err_del_bss:
435 sdata->bss = NULL; 434 sdata->bss = NULL;
436 if (sdata->vif.type == IEEE80211_IF_TYPE_VLAN) 435 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
437 list_del(&sdata->u.vlan.list); 436 list_del(&sdata->u.vlan.list);
438 return res; 437 return res;
439} 438}
@@ -496,7 +495,7 @@ static int ieee80211_stop(struct net_device *dev)
496 dev_mc_unsync(local->mdev, dev); 495 dev_mc_unsync(local->mdev, dev);
497 496
498 /* APs need special treatment */ 497 /* APs need special treatment */
499 if (sdata->vif.type == IEEE80211_IF_TYPE_AP) { 498 if (sdata->vif.type == NL80211_IFTYPE_AP) {
500 struct ieee80211_sub_if_data *vlan, *tmp; 499 struct ieee80211_sub_if_data *vlan, *tmp;
501 struct beacon_data *old_beacon = sdata->u.ap.beacon; 500 struct beacon_data *old_beacon = sdata->u.ap.beacon;
502 501
@@ -515,11 +514,11 @@ static int ieee80211_stop(struct net_device *dev)
515 local->open_count--; 514 local->open_count--;
516 515
517 switch (sdata->vif.type) { 516 switch (sdata->vif.type) {
518 case IEEE80211_IF_TYPE_VLAN: 517 case NL80211_IFTYPE_AP_VLAN:
519 list_del(&sdata->u.vlan.list); 518 list_del(&sdata->u.vlan.list);
520 /* no need to tell driver */ 519 /* no need to tell driver */
521 break; 520 break;
522 case IEEE80211_IF_TYPE_MNTR: 521 case NL80211_IFTYPE_MONITOR:
523 if (sdata->u.mntr_flags & MONITOR_FLAG_COOK_FRAMES) { 522 if (sdata->u.mntr_flags & MONITOR_FLAG_COOK_FRAMES) {
524 local->cooked_mntrs--; 523 local->cooked_mntrs--;
525 break; 524 break;
@@ -542,8 +541,8 @@ static int ieee80211_stop(struct net_device *dev)
542 ieee80211_configure_filter(local); 541 ieee80211_configure_filter(local);
543 netif_addr_unlock_bh(local->mdev); 542 netif_addr_unlock_bh(local->mdev);
544 break; 543 break;
545 case IEEE80211_IF_TYPE_STA: 544 case NL80211_IFTYPE_STATION:
546 case IEEE80211_IF_TYPE_IBSS: 545 case NL80211_IFTYPE_ADHOC:
547 sdata->u.sta.state = IEEE80211_STA_MLME_DISABLED; 546 sdata->u.sta.state = IEEE80211_STA_MLME_DISABLED;
548 memset(sdata->u.sta.bssid, 0, ETH_ALEN); 547 memset(sdata->u.sta.bssid, 0, ETH_ALEN);
549 del_timer_sync(&sdata->u.sta.timer); 548 del_timer_sync(&sdata->u.sta.timer);
@@ -569,7 +568,7 @@ static int ieee80211_stop(struct net_device *dev)
569 sdata->u.sta.extra_ie = NULL; 568 sdata->u.sta.extra_ie = NULL;
570 sdata->u.sta.extra_ie_len = 0; 569 sdata->u.sta.extra_ie_len = 0;
571 /* fall through */ 570 /* fall through */
572 case IEEE80211_IF_TYPE_MESH_POINT: 571 case NL80211_IFTYPE_MESH_POINT:
573 if (ieee80211_vif_is_mesh(&sdata->vif)) { 572 if (ieee80211_vif_is_mesh(&sdata->vif)) {
574 /* allmulti is always set on mesh ifaces */ 573 /* allmulti is always set on mesh ifaces */
575 atomic_dec(&local->iff_allmultis); 574 atomic_dec(&local->iff_allmultis);
@@ -698,12 +697,12 @@ int ieee80211_if_config(struct ieee80211_sub_if_data *sdata, u32 changed)
698 memset(&conf, 0, sizeof(conf)); 697 memset(&conf, 0, sizeof(conf));
699 conf.changed = changed; 698 conf.changed = changed;
700 699
701 if (sdata->vif.type == IEEE80211_IF_TYPE_STA || 700 if (sdata->vif.type == NL80211_IFTYPE_STATION ||
702 sdata->vif.type == IEEE80211_IF_TYPE_IBSS) { 701 sdata->vif.type == NL80211_IFTYPE_ADHOC) {
703 conf.bssid = sdata->u.sta.bssid; 702 conf.bssid = sdata->u.sta.bssid;
704 conf.ssid = sdata->u.sta.ssid; 703 conf.ssid = sdata->u.sta.ssid;
705 conf.ssid_len = sdata->u.sta.ssid_len; 704 conf.ssid_len = sdata->u.sta.ssid_len;
706 } else if (sdata->vif.type == IEEE80211_IF_TYPE_AP) { 705 } else if (sdata->vif.type == NL80211_IFTYPE_AP) {
707 conf.bssid = sdata->dev->dev_addr; 706 conf.bssid = sdata->dev->dev_addr;
708 conf.ssid = sdata->u.ap.ssid; 707 conf.ssid = sdata->u.ap.ssid;
709 conf.ssid_len = sdata->u.ap.ssid_len; 708 conf.ssid_len = sdata->u.ap.ssid_len;
@@ -1204,7 +1203,7 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb)
1204 1203
1205 rcu_read_lock(); 1204 rcu_read_lock();
1206 list_for_each_entry_rcu(sdata, &local->interfaces, list) { 1205 list_for_each_entry_rcu(sdata, &local->interfaces, list) {
1207 if (sdata->vif.type == IEEE80211_IF_TYPE_MNTR) { 1206 if (sdata->vif.type == NL80211_IFTYPE_MONITOR) {
1208 if (!netif_running(sdata->dev)) 1207 if (!netif_running(sdata->dev))
1209 continue; 1208 continue;
1210 1209
@@ -1450,7 +1449,7 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
1450 1449
1451 /* add one default STA interface */ 1450 /* add one default STA interface */
1452 result = ieee80211_if_add(local, "wlan%d", NULL, 1451 result = ieee80211_if_add(local, "wlan%d", NULL,
1453 IEEE80211_IF_TYPE_STA, NULL); 1452 NL80211_IFTYPE_STATION, NULL);
1454 if (result) 1453 if (result)
1455 printk(KERN_WARNING "%s: Failed to add default virtual iface\n", 1454 printk(KERN_WARNING "%s: Failed to add default virtual iface\n",
1456 wiphy_name(local->hw.wiphy)); 1455 wiphy_name(local->hw.wiphy));
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 55bc60713937..8a2cfd3609b5 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -678,7 +678,7 @@ static void ieee80211_set_associated(struct ieee80211_sub_if_data *sdata,
678 678
679 ifsta->flags |= IEEE80211_STA_ASSOCIATED; 679 ifsta->flags |= IEEE80211_STA_ASSOCIATED;
680 680
681 if (sdata->vif.type != IEEE80211_IF_TYPE_STA) 681 if (sdata->vif.type != NL80211_IFTYPE_STATION)
682 return; 682 return;
683 683
684 bss = ieee80211_rx_bss_get(local, ifsta->bssid, 684 bss = ieee80211_rx_bss_get(local, ifsta->bssid,
@@ -1002,17 +1002,17 @@ static void ieee80211_rx_mgmt_auth(struct ieee80211_sub_if_data *sdata,
1002 DECLARE_MAC_BUF(mac); 1002 DECLARE_MAC_BUF(mac);
1003 1003
1004 if (ifsta->state != IEEE80211_STA_MLME_AUTHENTICATE && 1004 if (ifsta->state != IEEE80211_STA_MLME_AUTHENTICATE &&
1005 sdata->vif.type != IEEE80211_IF_TYPE_IBSS) 1005 sdata->vif.type != NL80211_IFTYPE_ADHOC)
1006 return; 1006 return;
1007 1007
1008 if (len < 24 + 6) 1008 if (len < 24 + 6)
1009 return; 1009 return;
1010 1010
1011 if (sdata->vif.type != IEEE80211_IF_TYPE_IBSS && 1011 if (sdata->vif.type != NL80211_IFTYPE_ADHOC &&
1012 memcmp(ifsta->bssid, mgmt->sa, ETH_ALEN) != 0) 1012 memcmp(ifsta->bssid, mgmt->sa, ETH_ALEN) != 0)
1013 return; 1013 return;
1014 1014
1015 if (sdata->vif.type != IEEE80211_IF_TYPE_IBSS && 1015 if (sdata->vif.type != NL80211_IFTYPE_ADHOC &&
1016 memcmp(ifsta->bssid, mgmt->bssid, ETH_ALEN) != 0) 1016 memcmp(ifsta->bssid, mgmt->bssid, ETH_ALEN) != 0)
1017 return; 1017 return;
1018 1018
@@ -1020,7 +1020,7 @@ static void ieee80211_rx_mgmt_auth(struct ieee80211_sub_if_data *sdata,
1020 auth_transaction = le16_to_cpu(mgmt->u.auth.auth_transaction); 1020 auth_transaction = le16_to_cpu(mgmt->u.auth.auth_transaction);
1021 status_code = le16_to_cpu(mgmt->u.auth.status_code); 1021 status_code = le16_to_cpu(mgmt->u.auth.status_code);
1022 1022
1023 if (sdata->vif.type == IEEE80211_IF_TYPE_IBSS) { 1023 if (sdata->vif.type == NL80211_IFTYPE_ADHOC) {
1024 /* 1024 /*
1025 * IEEE 802.11 standard does not require authentication in IBSS 1025 * IEEE 802.11 standard does not require authentication in IBSS
1026 * networks and most implementations do not seem to use it. 1026 * networks and most implementations do not seem to use it.
@@ -1487,7 +1487,7 @@ static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata,
1487 if (!channel || channel->flags & IEEE80211_CHAN_DISABLED) 1487 if (!channel || channel->flags & IEEE80211_CHAN_DISABLED)
1488 return; 1488 return;
1489 1489
1490 if (sdata->vif.type == IEEE80211_IF_TYPE_IBSS && elems->supp_rates && 1490 if (sdata->vif.type == NL80211_IFTYPE_ADHOC && elems->supp_rates &&
1491 memcmp(mgmt->bssid, sdata->u.sta.bssid, ETH_ALEN) == 0) { 1491 memcmp(mgmt->bssid, sdata->u.sta.bssid, ETH_ALEN) == 0) {
1492 supp_rates = ieee80211_sta_get_rates(local, elems, band); 1492 supp_rates = ieee80211_sta_get_rates(local, elems, band);
1493 1493
@@ -1532,14 +1532,14 @@ static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata,
1532 * In STA mode, the remaining parameters should not be overridden 1532 * In STA mode, the remaining parameters should not be overridden
1533 * by beacons because they're not necessarily accurate there. 1533 * by beacons because they're not necessarily accurate there.
1534 */ 1534 */
1535 if (sdata->vif.type != IEEE80211_IF_TYPE_IBSS && 1535 if (sdata->vif.type != NL80211_IFTYPE_ADHOC &&
1536 bss->last_probe_resp && beacon) { 1536 bss->last_probe_resp && beacon) {
1537 ieee80211_rx_bss_put(local, bss); 1537 ieee80211_rx_bss_put(local, bss);
1538 return; 1538 return;
1539 } 1539 }
1540 1540
1541 /* check if we need to merge IBSS */ 1541 /* check if we need to merge IBSS */
1542 if (sdata->vif.type == IEEE80211_IF_TYPE_IBSS && beacon && 1542 if (sdata->vif.type == NL80211_IFTYPE_ADHOC && beacon &&
1543 bss->capability & WLAN_CAPABILITY_IBSS && 1543 bss->capability & WLAN_CAPABILITY_IBSS &&
1544 bss->freq == local->oper_channel->center_freq && 1544 bss->freq == local->oper_channel->center_freq &&
1545 elems->ssid_len == sdata->u.sta.ssid_len && 1545 elems->ssid_len == sdata->u.sta.ssid_len &&
@@ -1649,7 +1649,7 @@ static void ieee80211_rx_mgmt_beacon(struct ieee80211_sub_if_data *sdata,
1649 1649
1650 ieee80211_rx_bss_info(sdata, mgmt, len, rx_status, &elems, true); 1650 ieee80211_rx_bss_info(sdata, mgmt, len, rx_status, &elems, true);
1651 1651
1652 if (sdata->vif.type != IEEE80211_IF_TYPE_STA) 1652 if (sdata->vif.type != NL80211_IFTYPE_STATION)
1653 return; 1653 return;
1654 ifsta = &sdata->u.sta; 1654 ifsta = &sdata->u.sta;
1655 1655
@@ -1700,7 +1700,7 @@ static void ieee80211_rx_mgmt_probe_req(struct ieee80211_sub_if_data *sdata,
1700 DECLARE_MAC_BUF(mac3); 1700 DECLARE_MAC_BUF(mac3);
1701#endif 1701#endif
1702 1702
1703 if (sdata->vif.type != IEEE80211_IF_TYPE_IBSS || 1703 if (sdata->vif.type != NL80211_IFTYPE_ADHOC ||
1704 ifsta->state != IEEE80211_STA_MLME_IBSS_JOINED || 1704 ifsta->state != IEEE80211_STA_MLME_IBSS_JOINED ||
1705 len < 24 + 2 || !ifsta->probe_resp) 1705 len < 24 + 2 || !ifsta->probe_resp)
1706 return; 1706 return;
@@ -2212,8 +2212,8 @@ static void ieee80211_sta_work(struct work_struct *work)
2212 if (local->sw_scanning || local->hw_scanning) 2212 if (local->sw_scanning || local->hw_scanning)
2213 return; 2213 return;
2214 2214
2215 if (WARN_ON(sdata->vif.type != IEEE80211_IF_TYPE_STA && 2215 if (WARN_ON(sdata->vif.type != NL80211_IFTYPE_STATION &&
2216 sdata->vif.type != IEEE80211_IF_TYPE_IBSS)) 2216 sdata->vif.type != NL80211_IFTYPE_ADHOC))
2217 return; 2217 return;
2218 ifsta = &sdata->u.sta; 2218 ifsta = &sdata->u.sta;
2219 2219
@@ -2273,7 +2273,7 @@ static void ieee80211_sta_work(struct work_struct *work)
2273 2273
2274static void ieee80211_restart_sta_timer(struct ieee80211_sub_if_data *sdata) 2274static void ieee80211_restart_sta_timer(struct ieee80211_sub_if_data *sdata)
2275{ 2275{
2276 if (sdata->vif.type == IEEE80211_IF_TYPE_STA) 2276 if (sdata->vif.type == NL80211_IFTYPE_STATION)
2277 queue_work(sdata->local->hw.workqueue, 2277 queue_work(sdata->local->hw.workqueue,
2278 &sdata->u.sta.work); 2278 &sdata->u.sta.work);
2279} 2279}
@@ -2355,7 +2355,7 @@ void ieee80211_sta_req_auth(struct ieee80211_sub_if_data *sdata,
2355{ 2355{
2356 struct ieee80211_local *local = sdata->local; 2356 struct ieee80211_local *local = sdata->local;
2357 2357
2358 if (sdata->vif.type != IEEE80211_IF_TYPE_STA) 2358 if (sdata->vif.type != NL80211_IFTYPE_STATION)
2359 return; 2359 return;
2360 2360
2361 if ((ifsta->flags & (IEEE80211_STA_BSSID_SET | 2361 if ((ifsta->flags & (IEEE80211_STA_BSSID_SET |
@@ -2407,7 +2407,7 @@ int ieee80211_sta_set_ssid(struct ieee80211_sub_if_data *sdata, char *ssid, size
2407 else 2407 else
2408 ifsta->flags &= ~IEEE80211_STA_SSID_SET; 2408 ifsta->flags &= ~IEEE80211_STA_SSID_SET;
2409 2409
2410 if (sdata->vif.type == IEEE80211_IF_TYPE_IBSS && 2410 if (sdata->vif.type == NL80211_IFTYPE_ADHOC &&
2411 !(ifsta->flags & IEEE80211_STA_BSSID_SET)) { 2411 !(ifsta->flags & IEEE80211_STA_BSSID_SET)) {
2412 ifsta->ibss_join_req = jiffies; 2412 ifsta->ibss_join_req = jiffies;
2413 ifsta->state = IEEE80211_STA_MLME_IBSS_SEARCH; 2413 ifsta->state = IEEE80211_STA_MLME_IBSS_SEARCH;
@@ -2482,8 +2482,8 @@ int ieee80211_sta_deauthenticate(struct ieee80211_sub_if_data *sdata, u16 reason
2482 printk(KERN_DEBUG "%s: deauthenticating by local choice (reason=%d)\n", 2482 printk(KERN_DEBUG "%s: deauthenticating by local choice (reason=%d)\n",
2483 sdata->dev->name, reason); 2483 sdata->dev->name, reason);
2484 2484
2485 if (sdata->vif.type != IEEE80211_IF_TYPE_STA && 2485 if (sdata->vif.type != NL80211_IFTYPE_STATION &&
2486 sdata->vif.type != IEEE80211_IF_TYPE_IBSS) 2486 sdata->vif.type != NL80211_IFTYPE_ADHOC)
2487 return -EINVAL; 2487 return -EINVAL;
2488 2488
2489 ieee80211_set_disassoc(sdata, ifsta, true, true, reason); 2489 ieee80211_set_disassoc(sdata, ifsta, true, true, reason);
@@ -2497,7 +2497,7 @@ int ieee80211_sta_disassociate(struct ieee80211_sub_if_data *sdata, u16 reason)
2497 printk(KERN_DEBUG "%s: disassociating by local choice (reason=%d)\n", 2497 printk(KERN_DEBUG "%s: disassociating by local choice (reason=%d)\n",
2498 sdata->dev->name, reason); 2498 sdata->dev->name, reason);
2499 2499
2500 if (sdata->vif.type != IEEE80211_IF_TYPE_STA) 2500 if (sdata->vif.type != NL80211_IFTYPE_STATION)
2501 return -EINVAL; 2501 return -EINVAL;
2502 2502
2503 if (!(ifsta->flags & IEEE80211_STA_ASSOCIATED)) 2503 if (!(ifsta->flags & IEEE80211_STA_ASSOCIATED))
@@ -2513,7 +2513,7 @@ void ieee80211_mlme_notify_scan_completed(struct ieee80211_local *local)
2513 struct ieee80211_sub_if_data *sdata = local->scan_sdata; 2513 struct ieee80211_sub_if_data *sdata = local->scan_sdata;
2514 struct ieee80211_if_sta *ifsta; 2514 struct ieee80211_if_sta *ifsta;
2515 2515
2516 if (sdata && sdata->vif.type == IEEE80211_IF_TYPE_IBSS) { 2516 if (sdata && sdata->vif.type == NL80211_IFTYPE_ADHOC) {
2517 ifsta = &sdata->u.sta; 2517 ifsta = &sdata->u.sta;
2518 if (!(ifsta->flags & IEEE80211_STA_BSSID_SET) || 2518 if (!(ifsta->flags & IEEE80211_STA_BSSID_SET) ||
2519 (!(ifsta->state == IEEE80211_STA_MLME_IBSS_JOINED) && 2519 (!(ifsta->state == IEEE80211_STA_MLME_IBSS_JOINED) &&
@@ -2539,7 +2539,7 @@ void ieee80211_notify_mac(struct ieee80211_hw *hw,
2539 case IEEE80211_NOTIFY_RE_ASSOC: 2539 case IEEE80211_NOTIFY_RE_ASSOC:
2540 rcu_read_lock(); 2540 rcu_read_lock();
2541 list_for_each_entry_rcu(sdata, &local->interfaces, list) { 2541 list_for_each_entry_rcu(sdata, &local->interfaces, list) {
2542 if (sdata->vif.type != IEEE80211_IF_TYPE_STA) 2542 if (sdata->vif.type != NL80211_IFTYPE_STATION)
2543 continue; 2543 continue;
2544 2544
2545 ieee80211_sta_req_auth(sdata, &sdata->u.sta); 2545 ieee80211_sta_req_auth(sdata, &sdata->u.sta);
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 33530b29c422..8c3dda5f00b2 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -295,7 +295,7 @@ ieee80211_rx_monitor(struct ieee80211_local *local, struct sk_buff *origskb,
295 if (!netif_running(sdata->dev)) 295 if (!netif_running(sdata->dev))
296 continue; 296 continue;
297 297
298 if (sdata->vif.type != IEEE80211_IF_TYPE_MNTR) 298 if (sdata->vif.type != NL80211_IFTYPE_MONITOR)
299 continue; 299 continue;
300 300
301 if (sdata->u.mntr_flags & MONITOR_FLAG_COOK_FRAMES) 301 if (sdata->u.mntr_flags & MONITOR_FLAG_COOK_FRAMES)
@@ -512,7 +512,7 @@ ieee80211_rx_h_check(struct ieee80211_rx_data *rx)
512 512
513 if (unlikely((ieee80211_is_data(hdr->frame_control) || 513 if (unlikely((ieee80211_is_data(hdr->frame_control) ||
514 ieee80211_is_pspoll(hdr->frame_control)) && 514 ieee80211_is_pspoll(hdr->frame_control)) &&
515 rx->sdata->vif.type != IEEE80211_IF_TYPE_IBSS && 515 rx->sdata->vif.type != NL80211_IFTYPE_ADHOC &&
516 (!rx->sta || !test_sta_flags(rx->sta, WLAN_STA_ASSOC)))) { 516 (!rx->sta || !test_sta_flags(rx->sta, WLAN_STA_ASSOC)))) {
517 if ((!ieee80211_has_fromds(hdr->frame_control) && 517 if ((!ieee80211_has_fromds(hdr->frame_control) &&
518 !ieee80211_has_tods(hdr->frame_control) && 518 !ieee80211_has_tods(hdr->frame_control) &&
@@ -724,14 +724,14 @@ ieee80211_rx_h_sta_process(struct ieee80211_rx_data *rx)
724 /* Update last_rx only for IBSS packets which are for the current 724 /* Update last_rx only for IBSS packets which are for the current
725 * BSSID to avoid keeping the current IBSS network alive in cases where 725 * BSSID to avoid keeping the current IBSS network alive in cases where
726 * other STAs are using different BSSID. */ 726 * other STAs are using different BSSID. */
727 if (rx->sdata->vif.type == IEEE80211_IF_TYPE_IBSS) { 727 if (rx->sdata->vif.type == NL80211_IFTYPE_ADHOC) {
728 u8 *bssid = ieee80211_get_bssid(hdr, rx->skb->len, 728 u8 *bssid = ieee80211_get_bssid(hdr, rx->skb->len,
729 IEEE80211_IF_TYPE_IBSS); 729 NL80211_IFTYPE_ADHOC);
730 if (compare_ether_addr(bssid, rx->sdata->u.sta.bssid) == 0) 730 if (compare_ether_addr(bssid, rx->sdata->u.sta.bssid) == 0)
731 sta->last_rx = jiffies; 731 sta->last_rx = jiffies;
732 } else 732 } else
733 if (!is_multicast_ether_addr(hdr->addr1) || 733 if (!is_multicast_ether_addr(hdr->addr1) ||
734 rx->sdata->vif.type == IEEE80211_IF_TYPE_STA) { 734 rx->sdata->vif.type == NL80211_IFTYPE_STATION) {
735 /* Update last_rx only for unicast frames in order to prevent 735 /* Update last_rx only for unicast frames in order to prevent
736 * the Probe Request frames (the only broadcast frames from a 736 * the Probe Request frames (the only broadcast frames from a
737 * STA in infrastructure mode) from keeping a connection alive. 737 * STA in infrastructure mode) from keeping a connection alive.
@@ -751,8 +751,8 @@ ieee80211_rx_h_sta_process(struct ieee80211_rx_data *rx)
751 sta->last_noise = rx->status->noise; 751 sta->last_noise = rx->status->noise;
752 752
753 if (!ieee80211_has_morefrags(hdr->frame_control) && 753 if (!ieee80211_has_morefrags(hdr->frame_control) &&
754 (rx->sdata->vif.type == IEEE80211_IF_TYPE_AP || 754 (rx->sdata->vif.type == NL80211_IFTYPE_AP ||
755 rx->sdata->vif.type == IEEE80211_IF_TYPE_VLAN)) { 755 rx->sdata->vif.type == NL80211_IFTYPE_AP_VLAN)) {
756 /* Change STA power saving mode only in the end of a frame 756 /* Change STA power saving mode only in the end of a frame
757 * exchange sequence */ 757 * exchange sequence */
758 if (test_sta_flags(sta, WLAN_STA_PS) && 758 if (test_sta_flags(sta, WLAN_STA_PS) &&
@@ -982,8 +982,8 @@ ieee80211_rx_h_ps_poll(struct ieee80211_rx_data *rx)
982 !(rx->flags & IEEE80211_RX_RA_MATCH))) 982 !(rx->flags & IEEE80211_RX_RA_MATCH)))
983 return RX_CONTINUE; 983 return RX_CONTINUE;
984 984
985 if ((sdata->vif.type != IEEE80211_IF_TYPE_AP) && 985 if ((sdata->vif.type != NL80211_IFTYPE_AP) &&
986 (sdata->vif.type != IEEE80211_IF_TYPE_VLAN)) 986 (sdata->vif.type != NL80211_IFTYPE_AP_VLAN))
987 return RX_DROP_UNUSABLE; 987 return RX_DROP_UNUSABLE;
988 988
989 skb = skb_dequeue(&rx->sta->tx_filtered); 989 skb = skb_dequeue(&rx->sta->tx_filtered);
@@ -1131,23 +1131,23 @@ ieee80211_data_to_8023(struct ieee80211_rx_data *rx)
1131 switch (hdr->frame_control & 1131 switch (hdr->frame_control &
1132 cpu_to_le16(IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS)) { 1132 cpu_to_le16(IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS)) {
1133 case __constant_cpu_to_le16(IEEE80211_FCTL_TODS): 1133 case __constant_cpu_to_le16(IEEE80211_FCTL_TODS):
1134 if (unlikely(sdata->vif.type != IEEE80211_IF_TYPE_AP && 1134 if (unlikely(sdata->vif.type != NL80211_IFTYPE_AP &&
1135 sdata->vif.type != IEEE80211_IF_TYPE_VLAN)) 1135 sdata->vif.type != NL80211_IFTYPE_AP_VLAN))
1136 return -1; 1136 return -1;
1137 break; 1137 break;
1138 case __constant_cpu_to_le16(IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS): 1138 case __constant_cpu_to_le16(IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS):
1139 if (unlikely(sdata->vif.type != IEEE80211_IF_TYPE_WDS && 1139 if (unlikely(sdata->vif.type != NL80211_IFTYPE_WDS &&
1140 sdata->vif.type != IEEE80211_IF_TYPE_MESH_POINT)) 1140 sdata->vif.type != NL80211_IFTYPE_MESH_POINT))
1141 return -1; 1141 return -1;
1142 break; 1142 break;
1143 case __constant_cpu_to_le16(IEEE80211_FCTL_FROMDS): 1143 case __constant_cpu_to_le16(IEEE80211_FCTL_FROMDS):
1144 if (sdata->vif.type != IEEE80211_IF_TYPE_STA || 1144 if (sdata->vif.type != NL80211_IFTYPE_STATION ||
1145 (is_multicast_ether_addr(dst) && 1145 (is_multicast_ether_addr(dst) &&
1146 !compare_ether_addr(src, dev->dev_addr))) 1146 !compare_ether_addr(src, dev->dev_addr)))
1147 return -1; 1147 return -1;
1148 break; 1148 break;
1149 case __constant_cpu_to_le16(0): 1149 case __constant_cpu_to_le16(0):
1150 if (sdata->vif.type != IEEE80211_IF_TYPE_IBSS) 1150 if (sdata->vif.type != NL80211_IFTYPE_ADHOC)
1151 return -1; 1151 return -1;
1152 break; 1152 break;
1153 } 1153 }
@@ -1221,8 +1221,8 @@ ieee80211_deliver_skb(struct ieee80211_rx_data *rx)
1221 skb = rx->skb; 1221 skb = rx->skb;
1222 xmit_skb = NULL; 1222 xmit_skb = NULL;
1223 1223
1224 if ((sdata->vif.type == IEEE80211_IF_TYPE_AP || 1224 if ((sdata->vif.type == NL80211_IFTYPE_AP ||
1225 sdata->vif.type == IEEE80211_IF_TYPE_VLAN) && 1225 sdata->vif.type == NL80211_IFTYPE_AP_VLAN) &&
1226 !(sdata->flags & IEEE80211_SDATA_DONT_BRIDGE_PACKETS) && 1226 !(sdata->flags & IEEE80211_SDATA_DONT_BRIDGE_PACKETS) &&
1227 (rx->flags & IEEE80211_RX_RA_MATCH)) { 1227 (rx->flags & IEEE80211_RX_RA_MATCH)) {
1228 if (is_multicast_ether_addr(ehdr->h_dest)) { 1228 if (is_multicast_ether_addr(ehdr->h_dest)) {
@@ -1536,8 +1536,8 @@ ieee80211_rx_h_action(struct ieee80211_rx_data *rx)
1536 * FIXME: revisit this, I'm sure we should handle most 1536 * FIXME: revisit this, I'm sure we should handle most
1537 * of these frames in other modes as well! 1537 * of these frames in other modes as well!
1538 */ 1538 */
1539 if (sdata->vif.type != IEEE80211_IF_TYPE_STA && 1539 if (sdata->vif.type != NL80211_IFTYPE_STATION &&
1540 sdata->vif.type != IEEE80211_IF_TYPE_IBSS) 1540 sdata->vif.type != NL80211_IFTYPE_ADHOC)
1541 return RX_DROP_MONITOR; 1541 return RX_DROP_MONITOR;
1542 1542
1543 switch (mgmt->u.action.category) { 1543 switch (mgmt->u.action.category) {
@@ -1595,8 +1595,8 @@ ieee80211_rx_h_mgmt(struct ieee80211_rx_data *rx)
1595 if (ieee80211_vif_is_mesh(&sdata->vif)) 1595 if (ieee80211_vif_is_mesh(&sdata->vif))
1596 return ieee80211_mesh_rx_mgmt(sdata, rx->skb, rx->status); 1596 return ieee80211_mesh_rx_mgmt(sdata, rx->skb, rx->status);
1597 1597
1598 if (sdata->vif.type != IEEE80211_IF_TYPE_STA && 1598 if (sdata->vif.type != NL80211_IFTYPE_STATION &&
1599 sdata->vif.type != IEEE80211_IF_TYPE_IBSS) 1599 sdata->vif.type != NL80211_IFTYPE_ADHOC)
1600 return RX_DROP_MONITOR; 1600 return RX_DROP_MONITOR;
1601 1601
1602 if (sdata->flags & IEEE80211_SDATA_USERSPACE_MLME) 1602 if (sdata->flags & IEEE80211_SDATA_USERSPACE_MLME)
@@ -1632,7 +1632,7 @@ static void ieee80211_rx_michael_mic_report(struct net_device *dev,
1632 if (!ieee80211_has_protected(hdr->frame_control)) 1632 if (!ieee80211_has_protected(hdr->frame_control))
1633 goto ignore; 1633 goto ignore;
1634 1634
1635 if (rx->sdata->vif.type == IEEE80211_IF_TYPE_AP && keyidx) { 1635 if (rx->sdata->vif.type == NL80211_IFTYPE_AP && keyidx) {
1636 /* 1636 /*
1637 * APs with pairwise keys should never receive Michael MIC 1637 * APs with pairwise keys should never receive Michael MIC
1638 * errors for non-zero keyidx because these are reserved for 1638 * errors for non-zero keyidx because these are reserved for
@@ -1702,7 +1702,7 @@ static void ieee80211_rx_cooked_monitor(struct ieee80211_rx_data *rx)
1702 if (!netif_running(sdata->dev)) 1702 if (!netif_running(sdata->dev))
1703 continue; 1703 continue;
1704 1704
1705 if (sdata->vif.type != IEEE80211_IF_TYPE_MNTR || 1705 if (sdata->vif.type != NL80211_IFTYPE_MONITOR ||
1706 !(sdata->u.mntr_flags & MONITOR_FLAG_COOK_FRAMES)) 1706 !(sdata->u.mntr_flags & MONITOR_FLAG_COOK_FRAMES))
1707 continue; 1707 continue;
1708 1708
@@ -1801,7 +1801,7 @@ static int prepare_for_handlers(struct ieee80211_sub_if_data *sdata,
1801 int multicast = is_multicast_ether_addr(hdr->addr1); 1801 int multicast = is_multicast_ether_addr(hdr->addr1);
1802 1802
1803 switch (sdata->vif.type) { 1803 switch (sdata->vif.type) {
1804 case IEEE80211_IF_TYPE_STA: 1804 case NL80211_IFTYPE_STATION:
1805 if (!bssid) 1805 if (!bssid)
1806 return 0; 1806 return 0;
1807 if (!ieee80211_bssid_match(bssid, sdata->u.sta.bssid)) { 1807 if (!ieee80211_bssid_match(bssid, sdata->u.sta.bssid)) {
@@ -1816,7 +1816,7 @@ static int prepare_for_handlers(struct ieee80211_sub_if_data *sdata,
1816 rx->flags &= ~IEEE80211_RX_RA_MATCH; 1816 rx->flags &= ~IEEE80211_RX_RA_MATCH;
1817 } 1817 }
1818 break; 1818 break;
1819 case IEEE80211_IF_TYPE_IBSS: 1819 case NL80211_IFTYPE_ADHOC:
1820 if (!bssid) 1820 if (!bssid)
1821 return 0; 1821 return 0;
1822 if (ieee80211_is_beacon(hdr->frame_control)) { 1822 if (ieee80211_is_beacon(hdr->frame_control)) {
@@ -1837,7 +1837,7 @@ static int prepare_for_handlers(struct ieee80211_sub_if_data *sdata,
1837 bssid, hdr->addr2, 1837 bssid, hdr->addr2,
1838 BIT(rx->status->rate_idx)); 1838 BIT(rx->status->rate_idx));
1839 break; 1839 break;
1840 case IEEE80211_IF_TYPE_MESH_POINT: 1840 case NL80211_IFTYPE_MESH_POINT:
1841 if (!multicast && 1841 if (!multicast &&
1842 compare_ether_addr(sdata->dev->dev_addr, 1842 compare_ether_addr(sdata->dev->dev_addr,
1843 hdr->addr1) != 0) { 1843 hdr->addr1) != 0) {
@@ -1847,8 +1847,8 @@ static int prepare_for_handlers(struct ieee80211_sub_if_data *sdata,
1847 rx->flags &= ~IEEE80211_RX_RA_MATCH; 1847 rx->flags &= ~IEEE80211_RX_RA_MATCH;
1848 } 1848 }
1849 break; 1849 break;
1850 case IEEE80211_IF_TYPE_VLAN: 1850 case NL80211_IFTYPE_AP_VLAN:
1851 case IEEE80211_IF_TYPE_AP: 1851 case NL80211_IFTYPE_AP:
1852 if (!bssid) { 1852 if (!bssid) {
1853 if (compare_ether_addr(sdata->dev->dev_addr, 1853 if (compare_ether_addr(sdata->dev->dev_addr,
1854 hdr->addr1)) 1854 hdr->addr1))
@@ -1860,16 +1860,17 @@ static int prepare_for_handlers(struct ieee80211_sub_if_data *sdata,
1860 rx->flags &= ~IEEE80211_RX_RA_MATCH; 1860 rx->flags &= ~IEEE80211_RX_RA_MATCH;
1861 } 1861 }
1862 break; 1862 break;
1863 case IEEE80211_IF_TYPE_WDS: 1863 case NL80211_IFTYPE_WDS:
1864 if (bssid || !ieee80211_is_data(hdr->frame_control)) 1864 if (bssid || !ieee80211_is_data(hdr->frame_control))
1865 return 0; 1865 return 0;
1866 if (compare_ether_addr(sdata->u.wds.remote_addr, hdr->addr2)) 1866 if (compare_ether_addr(sdata->u.wds.remote_addr, hdr->addr2))
1867 return 0; 1867 return 0;
1868 break; 1868 break;
1869 case IEEE80211_IF_TYPE_MNTR: 1869 case NL80211_IFTYPE_MONITOR:
1870 /* take everything */ 1870 /* take everything */
1871 break; 1871 break;
1872 case IEEE80211_IF_TYPE_INVALID: 1872 case NL80211_IFTYPE_UNSPECIFIED:
1873 case __NL80211_IFTYPE_AFTER_LAST:
1873 /* should never get here */ 1874 /* should never get here */
1874 WARN_ON(1); 1875 WARN_ON(1);
1875 break; 1876 break;
@@ -1930,7 +1931,7 @@ static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw,
1930 if (!netif_running(sdata->dev)) 1931 if (!netif_running(sdata->dev))
1931 continue; 1932 continue;
1932 1933
1933 if (sdata->vif.type == IEEE80211_IF_TYPE_MNTR) 1934 if (sdata->vif.type == NL80211_IFTYPE_MONITOR)
1934 continue; 1935 continue;
1935 1936
1936 bssid = ieee80211_get_bssid(hdr, skb->len, sdata->vif.type); 1937 bssid = ieee80211_get_bssid(hdr, skb->len, sdata->vif.type);
diff --git a/net/mac80211/scan.c b/net/mac80211/scan.c
index 5e719e7b720b..8e6685e7ae85 100644
--- a/net/mac80211/scan.c
+++ b/net/mac80211/scan.c
@@ -475,7 +475,7 @@ void ieee80211_scan_completed(struct ieee80211_hw *hw)
475 rcu_read_lock(); 475 rcu_read_lock();
476 list_for_each_entry_rcu(sdata, &local->interfaces, list) { 476 list_for_each_entry_rcu(sdata, &local->interfaces, list) {
477 /* Tell AP we're back */ 477 /* Tell AP we're back */
478 if (sdata->vif.type == IEEE80211_IF_TYPE_STA) { 478 if (sdata->vif.type == NL80211_IFTYPE_STATION) {
479 if (sdata->u.sta.flags & IEEE80211_STA_ASSOCIATED) { 479 if (sdata->u.sta.flags & IEEE80211_STA_ASSOCIATED) {
480 ieee80211_send_nullfunc(local, sdata, 0); 480 ieee80211_send_nullfunc(local, sdata, 0);
481 netif_tx_wake_all_queues(sdata->dev); 481 netif_tx_wake_all_queues(sdata->dev);
@@ -539,7 +539,7 @@ void ieee80211_scan_work(struct work_struct *work)
539 chan = &sband->channels[local->scan_channel_idx]; 539 chan = &sband->channels[local->scan_channel_idx];
540 540
541 if (chan->flags & IEEE80211_CHAN_DISABLED || 541 if (chan->flags & IEEE80211_CHAN_DISABLED ||
542 (sdata->vif.type == IEEE80211_IF_TYPE_IBSS && 542 (sdata->vif.type == NL80211_IFTYPE_ADHOC &&
543 chan->flags & IEEE80211_CHAN_NO_IBSS)) 543 chan->flags & IEEE80211_CHAN_NO_IBSS))
544 skip = 1; 544 skip = 1;
545 545
@@ -638,7 +638,7 @@ int ieee80211_start_scan(struct ieee80211_sub_if_data *scan_sdata,
638 638
639 rcu_read_lock(); 639 rcu_read_lock();
640 list_for_each_entry_rcu(sdata, &local->interfaces, list) { 640 list_for_each_entry_rcu(sdata, &local->interfaces, list) {
641 if (sdata->vif.type == IEEE80211_IF_TYPE_STA) { 641 if (sdata->vif.type == NL80211_IFTYPE_STATION) {
642 if (sdata->u.sta.flags & IEEE80211_STA_ASSOCIATED) { 642 if (sdata->u.sta.flags & IEEE80211_STA_ASSOCIATED) {
643 netif_tx_stop_all_queues(sdata->dev); 643 netif_tx_stop_all_queues(sdata->dev);
644 ieee80211_send_nullfunc(local, sdata, 1); 644 ieee80211_send_nullfunc(local, sdata, 1);
@@ -681,7 +681,7 @@ int ieee80211_request_scan(struct ieee80211_sub_if_data *sdata,
681 struct ieee80211_local *local = sdata->local; 681 struct ieee80211_local *local = sdata->local;
682 struct ieee80211_if_sta *ifsta; 682 struct ieee80211_if_sta *ifsta;
683 683
684 if (sdata->vif.type != IEEE80211_IF_TYPE_STA) 684 if (sdata->vif.type != NL80211_IFTYPE_STATION)
685 return ieee80211_start_scan(sdata, ssid, ssid_len); 685 return ieee80211_start_scan(sdata, ssid, ssid_len);
686 686
687 /* 687 /*
diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
index 3370b2625633..31246d8e5327 100644
--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -319,7 +319,7 @@ int sta_info_insert(struct sta_info *sta)
319 319
320 /* notify driver */ 320 /* notify driver */
321 if (local->ops->sta_notify) { 321 if (local->ops->sta_notify) {
322 if (sdata->vif.type == IEEE80211_IF_TYPE_VLAN) 322 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
323 sdata = container_of(sdata->bss, 323 sdata = container_of(sdata->bss,
324 struct ieee80211_sub_if_data, 324 struct ieee80211_sub_if_data,
325 u.ap); 325 u.ap);
@@ -456,7 +456,7 @@ static void __sta_info_unlink(struct sta_info **sta)
456 local->num_sta--; 456 local->num_sta--;
457 457
458 if (local->ops->sta_notify) { 458 if (local->ops->sta_notify) {
459 if (sdata->vif.type == IEEE80211_IF_TYPE_VLAN) 459 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
460 sdata = container_of(sdata->bss, 460 sdata = container_of(sdata->bss,
461 struct ieee80211_sub_if_data, 461 struct ieee80211_sub_if_data,
462 u.ap); 462 u.ap);
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index a523189f10c4..f4bcc589d674 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -226,7 +226,7 @@ ieee80211_tx_h_check_assoc(struct ieee80211_tx_data *tx)
226 !ieee80211_is_probe_req(hdr->frame_control)) 226 !ieee80211_is_probe_req(hdr->frame_control))
227 return TX_DROP; 227 return TX_DROP;
228 228
229 if (tx->sdata->vif.type == IEEE80211_IF_TYPE_MESH_POINT) 229 if (tx->sdata->vif.type == NL80211_IFTYPE_MESH_POINT)
230 return TX_CONTINUE; 230 return TX_CONTINUE;
231 231
232 if (tx->flags & IEEE80211_TX_PS_BUFFERED) 232 if (tx->flags & IEEE80211_TX_PS_BUFFERED)
@@ -236,7 +236,7 @@ ieee80211_tx_h_check_assoc(struct ieee80211_tx_data *tx)
236 236
237 if (likely(tx->flags & IEEE80211_TX_UNICAST)) { 237 if (likely(tx->flags & IEEE80211_TX_UNICAST)) {
238 if (unlikely(!(sta_flags & WLAN_STA_ASSOC) && 238 if (unlikely(!(sta_flags & WLAN_STA_ASSOC) &&
239 tx->sdata->vif.type != IEEE80211_IF_TYPE_IBSS && 239 tx->sdata->vif.type != NL80211_IFTYPE_ADHOC &&
240 ieee80211_is_data(hdr->frame_control))) { 240 ieee80211_is_data(hdr->frame_control))) {
241#ifdef CONFIG_MAC80211_VERBOSE_DEBUG 241#ifdef CONFIG_MAC80211_VERBOSE_DEBUG
242 DECLARE_MAC_BUF(mac); 242 DECLARE_MAC_BUF(mac);
@@ -250,7 +250,7 @@ ieee80211_tx_h_check_assoc(struct ieee80211_tx_data *tx)
250 } else { 250 } else {
251 if (unlikely(ieee80211_is_data(hdr->frame_control) && 251 if (unlikely(ieee80211_is_data(hdr->frame_control) &&
252 tx->local->num_sta == 0 && 252 tx->local->num_sta == 0 &&
253 tx->sdata->vif.type != IEEE80211_IF_TYPE_IBSS)) { 253 tx->sdata->vif.type != NL80211_IFTYPE_ADHOC)) {
254 /* 254 /*
255 * No associated STAs - no need to send multicast 255 * No associated STAs - no need to send multicast
256 * frames. 256 * frames.
@@ -281,7 +281,7 @@ static void purge_old_ps_buffers(struct ieee80211_local *local)
281 281
282 list_for_each_entry_rcu(sdata, &local->interfaces, list) { 282 list_for_each_entry_rcu(sdata, &local->interfaces, list) {
283 struct ieee80211_if_ap *ap; 283 struct ieee80211_if_ap *ap;
284 if (sdata->vif.type != IEEE80211_IF_TYPE_AP) 284 if (sdata->vif.type != NL80211_IFTYPE_AP)
285 continue; 285 continue;
286 ap = &sdata->u.ap; 286 ap = &sdata->u.ap;
287 skb = skb_dequeue(&ap->ps_bc_buf); 287 skb = skb_dequeue(&ap->ps_bc_buf);
@@ -979,7 +979,7 @@ __ieee80211_tx_prepare(struct ieee80211_tx_data *tx,
979 979
980 /* process and remove the injection radiotap header */ 980 /* process and remove the injection radiotap header */
981 sdata = IEEE80211_DEV_TO_SUB_IF(dev); 981 sdata = IEEE80211_DEV_TO_SUB_IF(dev);
982 if (unlikely(sdata->vif.type == IEEE80211_IF_TYPE_MNTR)) { 982 if (unlikely(sdata->vif.type == NL80211_IFTYPE_MONITOR)) {
983 if (__ieee80211_parse_tx_radiotap(tx, skb) == TX_DROP) 983 if (__ieee80211_parse_tx_radiotap(tx, skb) == TX_DROP)
984 return TX_DROP; 984 return TX_DROP;
985 985
@@ -1457,8 +1457,8 @@ int ieee80211_subif_start_xmit(struct sk_buff *skb,
1457 fc = cpu_to_le16(IEEE80211_FTYPE_DATA | IEEE80211_STYPE_DATA); 1457 fc = cpu_to_le16(IEEE80211_FTYPE_DATA | IEEE80211_STYPE_DATA);
1458 1458
1459 switch (sdata->vif.type) { 1459 switch (sdata->vif.type) {
1460 case IEEE80211_IF_TYPE_AP: 1460 case NL80211_IFTYPE_AP:
1461 case IEEE80211_IF_TYPE_VLAN: 1461 case NL80211_IFTYPE_AP_VLAN:
1462 fc |= cpu_to_le16(IEEE80211_FCTL_FROMDS); 1462 fc |= cpu_to_le16(IEEE80211_FCTL_FROMDS);
1463 /* DA BSSID SA */ 1463 /* DA BSSID SA */
1464 memcpy(hdr.addr1, skb->data, ETH_ALEN); 1464 memcpy(hdr.addr1, skb->data, ETH_ALEN);
@@ -1466,7 +1466,7 @@ int ieee80211_subif_start_xmit(struct sk_buff *skb,
1466 memcpy(hdr.addr3, skb->data + ETH_ALEN, ETH_ALEN); 1466 memcpy(hdr.addr3, skb->data + ETH_ALEN, ETH_ALEN);
1467 hdrlen = 24; 1467 hdrlen = 24;
1468 break; 1468 break;
1469 case IEEE80211_IF_TYPE_WDS: 1469 case NL80211_IFTYPE_WDS:
1470 fc |= cpu_to_le16(IEEE80211_FCTL_FROMDS | IEEE80211_FCTL_TODS); 1470 fc |= cpu_to_le16(IEEE80211_FCTL_FROMDS | IEEE80211_FCTL_TODS);
1471 /* RA TA DA SA */ 1471 /* RA TA DA SA */
1472 memcpy(hdr.addr1, sdata->u.wds.remote_addr, ETH_ALEN); 1472 memcpy(hdr.addr1, sdata->u.wds.remote_addr, ETH_ALEN);
@@ -1476,7 +1476,7 @@ int ieee80211_subif_start_xmit(struct sk_buff *skb,
1476 hdrlen = 30; 1476 hdrlen = 30;
1477 break; 1477 break;
1478#ifdef CONFIG_MAC80211_MESH 1478#ifdef CONFIG_MAC80211_MESH
1479 case IEEE80211_IF_TYPE_MESH_POINT: 1479 case NL80211_IFTYPE_MESH_POINT:
1480 fc |= cpu_to_le16(IEEE80211_FCTL_FROMDS | IEEE80211_FCTL_TODS); 1480 fc |= cpu_to_le16(IEEE80211_FCTL_FROMDS | IEEE80211_FCTL_TODS);
1481 /* RA TA DA SA */ 1481 /* RA TA DA SA */
1482 memset(hdr.addr1, 0, ETH_ALEN); 1482 memset(hdr.addr1, 0, ETH_ALEN);
@@ -1493,7 +1493,7 @@ int ieee80211_subif_start_xmit(struct sk_buff *skb,
1493 hdrlen = 30; 1493 hdrlen = 30;
1494 break; 1494 break;
1495#endif 1495#endif
1496 case IEEE80211_IF_TYPE_STA: 1496 case NL80211_IFTYPE_STATION:
1497 fc |= cpu_to_le16(IEEE80211_FCTL_TODS); 1497 fc |= cpu_to_le16(IEEE80211_FCTL_TODS);
1498 /* BSSID SA DA */ 1498 /* BSSID SA DA */
1499 memcpy(hdr.addr1, sdata->u.sta.bssid, ETH_ALEN); 1499 memcpy(hdr.addr1, sdata->u.sta.bssid, ETH_ALEN);
@@ -1501,7 +1501,7 @@ int ieee80211_subif_start_xmit(struct sk_buff *skb,
1501 memcpy(hdr.addr3, skb->data, ETH_ALEN); 1501 memcpy(hdr.addr3, skb->data, ETH_ALEN);
1502 hdrlen = 24; 1502 hdrlen = 24;
1503 break; 1503 break;
1504 case IEEE80211_IF_TYPE_IBSS: 1504 case NL80211_IFTYPE_ADHOC:
1505 /* DA SA BSSID */ 1505 /* DA SA BSSID */
1506 memcpy(hdr.addr1, skb->data, ETH_ALEN); 1506 memcpy(hdr.addr1, skb->data, ETH_ALEN);
1507 memcpy(hdr.addr2, skb->data + ETH_ALEN, ETH_ALEN); 1507 memcpy(hdr.addr2, skb->data + ETH_ALEN, ETH_ALEN);
@@ -1812,7 +1812,7 @@ struct sk_buff *ieee80211_beacon_get(struct ieee80211_hw *hw,
1812 sdata = vif_to_sdata(vif); 1812 sdata = vif_to_sdata(vif);
1813 bdev = sdata->dev; 1813 bdev = sdata->dev;
1814 1814
1815 if (sdata->vif.type == IEEE80211_IF_TYPE_AP) { 1815 if (sdata->vif.type == NL80211_IFTYPE_AP) {
1816 ap = &sdata->u.ap; 1816 ap = &sdata->u.ap;
1817 beacon = rcu_dereference(ap->beacon); 1817 beacon = rcu_dereference(ap->beacon);
1818 if (ap && beacon) { 1818 if (ap && beacon) {
@@ -1854,7 +1854,7 @@ struct sk_buff *ieee80211_beacon_get(struct ieee80211_hw *hw,
1854 num_beacons = &ap->num_beacons; 1854 num_beacons = &ap->num_beacons;
1855 } else 1855 } else
1856 goto out; 1856 goto out;
1857 } else if (sdata->vif.type == IEEE80211_IF_TYPE_IBSS) { 1857 } else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) {
1858 struct ieee80211_hdr *hdr; 1858 struct ieee80211_hdr *hdr;
1859 ifsta = &sdata->u.sta; 1859 ifsta = &sdata->u.sta;
1860 1860
@@ -1999,7 +1999,7 @@ ieee80211_get_buffered_bc(struct ieee80211_hw *hw,
1999 rcu_read_lock(); 1999 rcu_read_lock();
2000 beacon = rcu_dereference(bss->beacon); 2000 beacon = rcu_dereference(bss->beacon);
2001 2001
2002 if (sdata->vif.type != IEEE80211_IF_TYPE_AP || !beacon || !beacon->head) 2002 if (sdata->vif.type != NL80211_IFTYPE_AP || !beacon || !beacon->head)
2003 goto out; 2003 goto out;
2004 2004
2005 if (bss->dtim_count != 0) 2005 if (bss->dtim_count != 0)
diff --git a/net/mac80211/util.c b/net/mac80211/util.c
index d6aca91e612d..6eb222369bcb 100644
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -43,7 +43,7 @@ const unsigned char bridge_tunnel_header[] __aligned(2) =
43 43
44 44
45u8 *ieee80211_get_bssid(struct ieee80211_hdr *hdr, size_t len, 45u8 *ieee80211_get_bssid(struct ieee80211_hdr *hdr, size_t len,
46 enum ieee80211_if_types type) 46 enum nl80211_iftype type)
47{ 47{
48 __le16 fc = hdr->frame_control; 48 __le16 fc = hdr->frame_control;
49 49
@@ -77,10 +77,10 @@ u8 *ieee80211_get_bssid(struct ieee80211_hdr *hdr, size_t len,
77 77
78 if (ieee80211_is_back_req(fc)) { 78 if (ieee80211_is_back_req(fc)) {
79 switch (type) { 79 switch (type) {
80 case IEEE80211_IF_TYPE_STA: 80 case NL80211_IFTYPE_STATION:
81 return hdr->addr2; 81 return hdr->addr2;
82 case IEEE80211_IF_TYPE_AP: 82 case NL80211_IFTYPE_AP:
83 case IEEE80211_IF_TYPE_VLAN: 83 case NL80211_IFTYPE_AP_VLAN:
84 return hdr->addr1; 84 return hdr->addr1;
85 default: 85 default:
86 break; /* fall through to the return */ 86 break; /* fall through to the return */
@@ -376,15 +376,16 @@ void ieee80211_iterate_active_interfaces(
376 376
377 list_for_each_entry(sdata, &local->interfaces, list) { 377 list_for_each_entry(sdata, &local->interfaces, list) {
378 switch (sdata->vif.type) { 378 switch (sdata->vif.type) {
379 case IEEE80211_IF_TYPE_INVALID: 379 case __NL80211_IFTYPE_AFTER_LAST:
380 case IEEE80211_IF_TYPE_MNTR: 380 case NL80211_IFTYPE_UNSPECIFIED:
381 case IEEE80211_IF_TYPE_VLAN: 381 case NL80211_IFTYPE_MONITOR:
382 case NL80211_IFTYPE_AP_VLAN:
382 continue; 383 continue;
383 case IEEE80211_IF_TYPE_AP: 384 case NL80211_IFTYPE_AP:
384 case IEEE80211_IF_TYPE_STA: 385 case NL80211_IFTYPE_STATION:
385 case IEEE80211_IF_TYPE_IBSS: 386 case NL80211_IFTYPE_ADHOC:
386 case IEEE80211_IF_TYPE_WDS: 387 case NL80211_IFTYPE_WDS:
387 case IEEE80211_IF_TYPE_MESH_POINT: 388 case NL80211_IFTYPE_MESH_POINT:
388 break; 389 break;
389 } 390 }
390 if (netif_running(sdata->dev)) 391 if (netif_running(sdata->dev))
@@ -409,15 +410,16 @@ void ieee80211_iterate_active_interfaces_atomic(
409 410
410 list_for_each_entry_rcu(sdata, &local->interfaces, list) { 411 list_for_each_entry_rcu(sdata, &local->interfaces, list) {
411 switch (sdata->vif.type) { 412 switch (sdata->vif.type) {
412 case IEEE80211_IF_TYPE_INVALID: 413 case __NL80211_IFTYPE_AFTER_LAST:
413 case IEEE80211_IF_TYPE_MNTR: 414 case NL80211_IFTYPE_UNSPECIFIED:
414 case IEEE80211_IF_TYPE_VLAN: 415 case NL80211_IFTYPE_MONITOR:
416 case NL80211_IFTYPE_AP_VLAN:
415 continue; 417 continue;
416 case IEEE80211_IF_TYPE_AP: 418 case NL80211_IFTYPE_AP:
417 case IEEE80211_IF_TYPE_STA: 419 case NL80211_IFTYPE_STATION:
418 case IEEE80211_IF_TYPE_IBSS: 420 case NL80211_IFTYPE_ADHOC:
419 case IEEE80211_IF_TYPE_WDS: 421 case NL80211_IFTYPE_WDS:
420 case IEEE80211_IF_TYPE_MESH_POINT: 422 case NL80211_IFTYPE_MESH_POINT:
421 break; 423 break;
422 } 424 }
423 if (netif_running(sdata->dev)) 425 if (netif_running(sdata->dev))
@@ -622,7 +624,7 @@ int ieee80211_set_freq(struct ieee80211_sub_if_data *sdata, int freqMHz)
622 chan = ieee80211_get_channel(local->hw.wiphy, freqMHz); 624 chan = ieee80211_get_channel(local->hw.wiphy, freqMHz);
623 625
624 if (chan && !(chan->flags & IEEE80211_CHAN_DISABLED)) { 626 if (chan && !(chan->flags & IEEE80211_CHAN_DISABLED)) {
625 if (sdata->vif.type == IEEE80211_IF_TYPE_IBSS && 627 if (sdata->vif.type == NL80211_IFTYPE_ADHOC &&
626 chan->flags & IEEE80211_CHAN_NO_IBSS) { 628 chan->flags & IEEE80211_CHAN_NO_IBSS) {
627 printk(KERN_DEBUG "%s: IBSS not allowed on frequency " 629 printk(KERN_DEBUG "%s: IBSS not allowed on frequency "
628 "%d MHz\n", sdata->dev->name, chan->center_freq); 630 "%d MHz\n", sdata->dev->name, chan->center_freq);
diff --git a/net/mac80211/wext.c b/net/mac80211/wext.c
index 77b68ed8b832..aef9707700fd 100644
--- a/net/mac80211/wext.c
+++ b/net/mac80211/wext.c
@@ -122,8 +122,8 @@ static int ieee80211_ioctl_siwgenie(struct net_device *dev,
122 if (sdata->flags & IEEE80211_SDATA_USERSPACE_MLME) 122 if (sdata->flags & IEEE80211_SDATA_USERSPACE_MLME)
123 return -EOPNOTSUPP; 123 return -EOPNOTSUPP;
124 124
125 if (sdata->vif.type == IEEE80211_IF_TYPE_STA || 125 if (sdata->vif.type == NL80211_IFTYPE_STATION ||
126 sdata->vif.type == IEEE80211_IF_TYPE_IBSS) { 126 sdata->vif.type == NL80211_IFTYPE_ADHOC) {
127 int ret = ieee80211_sta_set_extra_ie(sdata, extra, data->length); 127 int ret = ieee80211_sta_set_extra_ie(sdata, extra, data->length);
128 if (ret) 128 if (ret)
129 return ret; 129 return ret;
@@ -273,21 +273,21 @@ static int ieee80211_ioctl_siwmode(struct net_device *dev,
273 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); 273 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
274 int type; 274 int type;
275 275
276 if (sdata->vif.type == IEEE80211_IF_TYPE_VLAN) 276 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
277 return -EOPNOTSUPP; 277 return -EOPNOTSUPP;
278 278
279 switch (*mode) { 279 switch (*mode) {
280 case IW_MODE_INFRA: 280 case IW_MODE_INFRA:
281 type = IEEE80211_IF_TYPE_STA; 281 type = NL80211_IFTYPE_STATION;
282 break; 282 break;
283 case IW_MODE_ADHOC: 283 case IW_MODE_ADHOC:
284 type = IEEE80211_IF_TYPE_IBSS; 284 type = NL80211_IFTYPE_ADHOC;
285 break; 285 break;
286 case IW_MODE_REPEAT: 286 case IW_MODE_REPEAT:
287 type = IEEE80211_IF_TYPE_WDS; 287 type = NL80211_IFTYPE_WDS;
288 break; 288 break;
289 case IW_MODE_MONITOR: 289 case IW_MODE_MONITOR:
290 type = IEEE80211_IF_TYPE_MNTR; 290 type = NL80211_IFTYPE_MONITOR;
291 break; 291 break;
292 default: 292 default:
293 return -EINVAL; 293 return -EINVAL;
@@ -305,22 +305,22 @@ static int ieee80211_ioctl_giwmode(struct net_device *dev,
305 305
306 sdata = IEEE80211_DEV_TO_SUB_IF(dev); 306 sdata = IEEE80211_DEV_TO_SUB_IF(dev);
307 switch (sdata->vif.type) { 307 switch (sdata->vif.type) {
308 case IEEE80211_IF_TYPE_AP: 308 case NL80211_IFTYPE_AP:
309 *mode = IW_MODE_MASTER; 309 *mode = IW_MODE_MASTER;
310 break; 310 break;
311 case IEEE80211_IF_TYPE_STA: 311 case NL80211_IFTYPE_STATION:
312 *mode = IW_MODE_INFRA; 312 *mode = IW_MODE_INFRA;
313 break; 313 break;
314 case IEEE80211_IF_TYPE_IBSS: 314 case NL80211_IFTYPE_ADHOC:
315 *mode = IW_MODE_ADHOC; 315 *mode = IW_MODE_ADHOC;
316 break; 316 break;
317 case IEEE80211_IF_TYPE_MNTR: 317 case NL80211_IFTYPE_MONITOR:
318 *mode = IW_MODE_MONITOR; 318 *mode = IW_MODE_MONITOR;
319 break; 319 break;
320 case IEEE80211_IF_TYPE_WDS: 320 case NL80211_IFTYPE_WDS:
321 *mode = IW_MODE_REPEAT; 321 *mode = IW_MODE_REPEAT;
322 break; 322 break;
323 case IEEE80211_IF_TYPE_VLAN: 323 case NL80211_IFTYPE_AP_VLAN:
324 *mode = IW_MODE_SECOND; /* FIXME */ 324 *mode = IW_MODE_SECOND; /* FIXME */
325 break; 325 break;
326 default: 326 default:
@@ -336,13 +336,13 @@ static int ieee80211_ioctl_siwfreq(struct net_device *dev,
336{ 336{
337 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); 337 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
338 338
339 if (sdata->vif.type == IEEE80211_IF_TYPE_STA) 339 if (sdata->vif.type == NL80211_IFTYPE_STATION)
340 sdata->u.sta.flags &= ~IEEE80211_STA_AUTO_CHANNEL_SEL; 340 sdata->u.sta.flags &= ~IEEE80211_STA_AUTO_CHANNEL_SEL;
341 341
342 /* freq->e == 0: freq->m = channel; otherwise freq = m * 10^e */ 342 /* freq->e == 0: freq->m = channel; otherwise freq = m * 10^e */
343 if (freq->e == 0) { 343 if (freq->e == 0) {
344 if (freq->m < 0) { 344 if (freq->m < 0) {
345 if (sdata->vif.type == IEEE80211_IF_TYPE_STA) 345 if (sdata->vif.type == NL80211_IFTYPE_STATION)
346 sdata->u.sta.flags |= 346 sdata->u.sta.flags |=
347 IEEE80211_STA_AUTO_CHANNEL_SEL; 347 IEEE80211_STA_AUTO_CHANNEL_SEL;
348 return 0; 348 return 0;
@@ -386,8 +386,8 @@ static int ieee80211_ioctl_siwessid(struct net_device *dev,
386 len--; 386 len--;
387 387
388 sdata = IEEE80211_DEV_TO_SUB_IF(dev); 388 sdata = IEEE80211_DEV_TO_SUB_IF(dev);
389 if (sdata->vif.type == IEEE80211_IF_TYPE_STA || 389 if (sdata->vif.type == NL80211_IFTYPE_STATION ||
390 sdata->vif.type == IEEE80211_IF_TYPE_IBSS) { 390 sdata->vif.type == NL80211_IFTYPE_ADHOC) {
391 int ret; 391 int ret;
392 if (sdata->flags & IEEE80211_SDATA_USERSPACE_MLME) { 392 if (sdata->flags & IEEE80211_SDATA_USERSPACE_MLME) {
393 if (len > IEEE80211_MAX_SSID_LEN) 393 if (len > IEEE80211_MAX_SSID_LEN)
@@ -407,7 +407,7 @@ static int ieee80211_ioctl_siwessid(struct net_device *dev,
407 return 0; 407 return 0;
408 } 408 }
409 409
410 if (sdata->vif.type == IEEE80211_IF_TYPE_AP) { 410 if (sdata->vif.type == NL80211_IFTYPE_AP) {
411 memcpy(sdata->u.ap.ssid, ssid, len); 411 memcpy(sdata->u.ap.ssid, ssid, len);
412 memset(sdata->u.ap.ssid + len, 0, 412 memset(sdata->u.ap.ssid + len, 0,
413 IEEE80211_MAX_SSID_LEN - len); 413 IEEE80211_MAX_SSID_LEN - len);
@@ -426,8 +426,8 @@ static int ieee80211_ioctl_giwessid(struct net_device *dev,
426 426
427 struct ieee80211_sub_if_data *sdata; 427 struct ieee80211_sub_if_data *sdata;
428 sdata = IEEE80211_DEV_TO_SUB_IF(dev); 428 sdata = IEEE80211_DEV_TO_SUB_IF(dev);
429 if (sdata->vif.type == IEEE80211_IF_TYPE_STA || 429 if (sdata->vif.type == NL80211_IFTYPE_STATION ||
430 sdata->vif.type == IEEE80211_IF_TYPE_IBSS) { 430 sdata->vif.type == NL80211_IFTYPE_ADHOC) {
431 int res = ieee80211_sta_get_ssid(sdata, ssid, &len); 431 int res = ieee80211_sta_get_ssid(sdata, ssid, &len);
432 if (res == 0) { 432 if (res == 0) {
433 data->length = len; 433 data->length = len;
@@ -437,7 +437,7 @@ static int ieee80211_ioctl_giwessid(struct net_device *dev,
437 return res; 437 return res;
438 } 438 }
439 439
440 if (sdata->vif.type == IEEE80211_IF_TYPE_AP) { 440 if (sdata->vif.type == NL80211_IFTYPE_AP) {
441 len = sdata->u.ap.ssid_len; 441 len = sdata->u.ap.ssid_len;
442 if (len > IW_ESSID_MAX_SIZE) 442 if (len > IW_ESSID_MAX_SIZE)
443 len = IW_ESSID_MAX_SIZE; 443 len = IW_ESSID_MAX_SIZE;
@@ -457,8 +457,8 @@ static int ieee80211_ioctl_siwap(struct net_device *dev,
457 struct ieee80211_sub_if_data *sdata; 457 struct ieee80211_sub_if_data *sdata;
458 458
459 sdata = IEEE80211_DEV_TO_SUB_IF(dev); 459 sdata = IEEE80211_DEV_TO_SUB_IF(dev);
460 if (sdata->vif.type == IEEE80211_IF_TYPE_STA || 460 if (sdata->vif.type == NL80211_IFTYPE_STATION ||
461 sdata->vif.type == IEEE80211_IF_TYPE_IBSS) { 461 sdata->vif.type == NL80211_IFTYPE_ADHOC) {
462 int ret; 462 int ret;
463 if (sdata->flags & IEEE80211_SDATA_USERSPACE_MLME) { 463 if (sdata->flags & IEEE80211_SDATA_USERSPACE_MLME) {
464 memcpy(sdata->u.sta.bssid, (u8 *) &ap_addr->sa_data, 464 memcpy(sdata->u.sta.bssid, (u8 *) &ap_addr->sa_data,
@@ -477,7 +477,7 @@ static int ieee80211_ioctl_siwap(struct net_device *dev,
477 return ret; 477 return ret;
478 ieee80211_sta_req_auth(sdata, &sdata->u.sta); 478 ieee80211_sta_req_auth(sdata, &sdata->u.sta);
479 return 0; 479 return 0;
480 } else if (sdata->vif.type == IEEE80211_IF_TYPE_WDS) { 480 } else if (sdata->vif.type == NL80211_IFTYPE_WDS) {
481 /* 481 /*
482 * If it is necessary to update the WDS peer address 482 * If it is necessary to update the WDS peer address
483 * while the interface is running, then we need to do 483 * while the interface is running, then we need to do
@@ -505,8 +505,8 @@ static int ieee80211_ioctl_giwap(struct net_device *dev,
505 struct ieee80211_sub_if_data *sdata; 505 struct ieee80211_sub_if_data *sdata;
506 506
507 sdata = IEEE80211_DEV_TO_SUB_IF(dev); 507 sdata = IEEE80211_DEV_TO_SUB_IF(dev);
508 if (sdata->vif.type == IEEE80211_IF_TYPE_STA || 508 if (sdata->vif.type == NL80211_IFTYPE_STATION ||
509 sdata->vif.type == IEEE80211_IF_TYPE_IBSS) { 509 sdata->vif.type == NL80211_IFTYPE_ADHOC) {
510 if (sdata->u.sta.state == IEEE80211_STA_MLME_ASSOCIATED || 510 if (sdata->u.sta.state == IEEE80211_STA_MLME_ASSOCIATED ||
511 sdata->u.sta.state == IEEE80211_STA_MLME_IBSS_JOINED) { 511 sdata->u.sta.state == IEEE80211_STA_MLME_IBSS_JOINED) {
512 ap_addr->sa_family = ARPHRD_ETHER; 512 ap_addr->sa_family = ARPHRD_ETHER;
@@ -516,7 +516,7 @@ static int ieee80211_ioctl_giwap(struct net_device *dev,
516 memset(&ap_addr->sa_data, 0, ETH_ALEN); 516 memset(&ap_addr->sa_data, 0, ETH_ALEN);
517 return 0; 517 return 0;
518 } 518 }
519 } else if (sdata->vif.type == IEEE80211_IF_TYPE_WDS) { 519 } else if (sdata->vif.type == NL80211_IFTYPE_WDS) {
520 ap_addr->sa_family = ARPHRD_ETHER; 520 ap_addr->sa_family = ARPHRD_ETHER;
521 memcpy(&ap_addr->sa_data, sdata->u.wds.remote_addr, ETH_ALEN); 521 memcpy(&ap_addr->sa_data, sdata->u.wds.remote_addr, ETH_ALEN);
522 return 0; 522 return 0;
@@ -538,10 +538,10 @@ static int ieee80211_ioctl_siwscan(struct net_device *dev,
538 if (!netif_running(dev)) 538 if (!netif_running(dev))
539 return -ENETDOWN; 539 return -ENETDOWN;
540 540
541 if (sdata->vif.type != IEEE80211_IF_TYPE_STA && 541 if (sdata->vif.type != NL80211_IFTYPE_STATION &&
542 sdata->vif.type != IEEE80211_IF_TYPE_IBSS && 542 sdata->vif.type != NL80211_IFTYPE_ADHOC &&
543 sdata->vif.type != IEEE80211_IF_TYPE_MESH_POINT && 543 sdata->vif.type != NL80211_IFTYPE_MESH_POINT &&
544 sdata->vif.type != IEEE80211_IF_TYPE_AP) 544 sdata->vif.type != NL80211_IFTYPE_AP)
545 return -EOPNOTSUPP; 545 return -EOPNOTSUPP;
546 546
547 /* if SSID was specified explicitly then use that */ 547 /* if SSID was specified explicitly then use that */
@@ -627,7 +627,7 @@ static int ieee80211_ioctl_giwrate(struct net_device *dev,
627 627
628 sdata = IEEE80211_DEV_TO_SUB_IF(dev); 628 sdata = IEEE80211_DEV_TO_SUB_IF(dev);
629 629
630 if (sdata->vif.type != IEEE80211_IF_TYPE_STA) 630 if (sdata->vif.type != NL80211_IFTYPE_STATION)
631 return -EOPNOTSUPP; 631 return -EOPNOTSUPP;
632 632
633 sband = local->hw.wiphy->bands[local->hw.conf.channel->band]; 633 sband = local->hw.wiphy->bands[local->hw.conf.channel->band];
@@ -858,8 +858,8 @@ static int ieee80211_ioctl_siwmlme(struct net_device *dev,
858 struct iw_mlme *mlme = (struct iw_mlme *) extra; 858 struct iw_mlme *mlme = (struct iw_mlme *) extra;
859 859
860 sdata = IEEE80211_DEV_TO_SUB_IF(dev); 860 sdata = IEEE80211_DEV_TO_SUB_IF(dev);
861 if (sdata->vif.type != IEEE80211_IF_TYPE_STA && 861 if (sdata->vif.type != NL80211_IFTYPE_STATION &&
862 sdata->vif.type != IEEE80211_IF_TYPE_IBSS) 862 sdata->vif.type != NL80211_IFTYPE_ADHOC)
863 return -EINVAL; 863 return -EINVAL;
864 864
865 switch (mlme->cmd) { 865 switch (mlme->cmd) {
@@ -954,7 +954,7 @@ static int ieee80211_ioctl_giwencode(struct net_device *dev,
954 erq->length = sdata->keys[idx]->conf.keylen; 954 erq->length = sdata->keys[idx]->conf.keylen;
955 erq->flags |= IW_ENCODE_ENABLED; 955 erq->flags |= IW_ENCODE_ENABLED;
956 956
957 if (sdata->vif.type == IEEE80211_IF_TYPE_STA) { 957 if (sdata->vif.type == NL80211_IFTYPE_STATION) {
958 struct ieee80211_if_sta *ifsta = &sdata->u.sta; 958 struct ieee80211_if_sta *ifsta = &sdata->u.sta;
959 switch (ifsta->auth_alg) { 959 switch (ifsta->auth_alg) {
960 case WLAN_AUTH_OPEN: 960 case WLAN_AUTH_OPEN:
@@ -1028,7 +1028,7 @@ static int ieee80211_ioctl_siwauth(struct net_device *dev,
1028 sdata->drop_unencrypted = !!data->value; 1028 sdata->drop_unencrypted = !!data->value;
1029 break; 1029 break;
1030 case IW_AUTH_PRIVACY_INVOKED: 1030 case IW_AUTH_PRIVACY_INVOKED:
1031 if (sdata->vif.type != IEEE80211_IF_TYPE_STA) 1031 if (sdata->vif.type != NL80211_IFTYPE_STATION)
1032 ret = -EINVAL; 1032 ret = -EINVAL;
1033 else { 1033 else {
1034 sdata->u.sta.flags &= ~IEEE80211_STA_PRIVACY_INVOKED; 1034 sdata->u.sta.flags &= ~IEEE80211_STA_PRIVACY_INVOKED;
@@ -1043,8 +1043,8 @@ static int ieee80211_ioctl_siwauth(struct net_device *dev,
1043 } 1043 }
1044 break; 1044 break;
1045 case IW_AUTH_80211_AUTH_ALG: 1045 case IW_AUTH_80211_AUTH_ALG:
1046 if (sdata->vif.type == IEEE80211_IF_TYPE_STA || 1046 if (sdata->vif.type == NL80211_IFTYPE_STATION ||
1047 sdata->vif.type == IEEE80211_IF_TYPE_IBSS) 1047 sdata->vif.type == NL80211_IFTYPE_ADHOC)
1048 sdata->u.sta.auth_algs = data->value; 1048 sdata->u.sta.auth_algs = data->value;
1049 else 1049 else
1050 ret = -EOPNOTSUPP; 1050 ret = -EOPNOTSUPP;
@@ -1066,8 +1066,8 @@ static struct iw_statistics *ieee80211_get_wireless_stats(struct net_device *dev
1066 1066
1067 rcu_read_lock(); 1067 rcu_read_lock();
1068 1068
1069 if (sdata->vif.type == IEEE80211_IF_TYPE_STA || 1069 if (sdata->vif.type == NL80211_IFTYPE_STATION ||
1070 sdata->vif.type == IEEE80211_IF_TYPE_IBSS) 1070 sdata->vif.type == NL80211_IFTYPE_ADHOC)
1071 sta = sta_info_get(local, sdata->u.sta.bssid); 1071 sta = sta_info_get(local, sdata->u.sta.bssid);
1072 if (!sta) { 1072 if (!sta) {
1073 wstats->discard.fragment = 0; 1073 wstats->discard.fragment = 0;
@@ -1097,8 +1097,8 @@ static int ieee80211_ioctl_giwauth(struct net_device *dev,
1097 1097
1098 switch (data->flags & IW_AUTH_INDEX) { 1098 switch (data->flags & IW_AUTH_INDEX) {
1099 case IW_AUTH_80211_AUTH_ALG: 1099 case IW_AUTH_80211_AUTH_ALG:
1100 if (sdata->vif.type == IEEE80211_IF_TYPE_STA || 1100 if (sdata->vif.type == NL80211_IFTYPE_STATION ||
1101 sdata->vif.type == IEEE80211_IF_TYPE_IBSS) 1101 sdata->vif.type == NL80211_IFTYPE_ADHOC)
1102 data->value = sdata->u.sta.auth_algs; 1102 data->value = sdata->u.sta.auth_algs;
1103 else 1103 else
1104 ret = -EOPNOTSUPP; 1104 ret = -EOPNOTSUPP;