diff options
Diffstat (limited to 'net/mac80211')
-rw-r--r-- | net/mac80211/cfg.c | 5 | ||||
-rw-r--r-- | net/mac80211/ieee80211_i.h | 2 | ||||
-rw-r--r-- | net/mac80211/mlme.c | 5 | ||||
-rw-r--r-- | net/mac80211/wext.c | 3 |
4 files changed, 12 insertions, 3 deletions
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c index d591a936f5c4..6464bfd232c9 100644 --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c | |||
@@ -1265,6 +1265,11 @@ static int ieee80211_assoc(struct wiphy *wiphy, struct net_device *dev, | |||
1265 | sdata->u.mgd.flags &= ~IEEE80211_STA_MFP_ENABLED; | 1265 | sdata->u.mgd.flags &= ~IEEE80211_STA_MFP_ENABLED; |
1266 | } | 1266 | } |
1267 | 1267 | ||
1268 | if (req->control_port) | ||
1269 | sdata->u.mgd.flags |= IEEE80211_STA_CONTROL_PORT; | ||
1270 | else | ||
1271 | sdata->u.mgd.flags &= ~IEEE80211_STA_CONTROL_PORT; | ||
1272 | |||
1268 | sdata->u.mgd.flags |= IEEE80211_STA_EXT_SME; | 1273 | sdata->u.mgd.flags |= IEEE80211_STA_EXT_SME; |
1269 | sdata->u.mgd.state = IEEE80211_STA_MLME_ASSOCIATE; | 1274 | sdata->u.mgd.state = IEEE80211_STA_MLME_ASSOCIATE; |
1270 | ieee80211_sta_req_auth(sdata); | 1275 | ieee80211_sta_req_auth(sdata); |
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index 081c57427308..56a49ef446ca 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h | |||
@@ -235,7 +235,7 @@ struct mesh_preq_queue { | |||
235 | #define IEEE80211_STA_ASSOCIATED BIT(4) | 235 | #define IEEE80211_STA_ASSOCIATED BIT(4) |
236 | #define IEEE80211_STA_PROBEREQ_POLL BIT(5) | 236 | #define IEEE80211_STA_PROBEREQ_POLL BIT(5) |
237 | #define IEEE80211_STA_CREATE_IBSS BIT(6) | 237 | #define IEEE80211_STA_CREATE_IBSS BIT(6) |
238 | /* hole at 7, please re-use */ | 238 | #define IEEE80211_STA_CONTROL_PORT BIT(7) |
239 | #define IEEE80211_STA_WMM_ENABLED BIT(8) | 239 | #define IEEE80211_STA_WMM_ENABLED BIT(8) |
240 | /* hole at 9, please re-use */ | 240 | /* hole at 9, please re-use */ |
241 | #define IEEE80211_STA_AUTO_SSID_SEL BIT(10) | 241 | #define IEEE80211_STA_AUTO_SSID_SEL BIT(10) |
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index 6d00e3f738c0..2806f6af7ae7 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c | |||
@@ -1581,8 +1581,9 @@ static void ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata, | |||
1581 | * to between the sta_info_alloc() and sta_info_insert() above. | 1581 | * to between the sta_info_alloc() and sta_info_insert() above. |
1582 | */ | 1582 | */ |
1583 | 1583 | ||
1584 | set_sta_flags(sta, WLAN_STA_AUTH | WLAN_STA_ASSOC | WLAN_STA_ASSOC_AP | | 1584 | set_sta_flags(sta, WLAN_STA_AUTH | WLAN_STA_ASSOC | WLAN_STA_ASSOC_AP); |
1585 | WLAN_STA_AUTHORIZED); | 1585 | if (!(ifmgd->flags & IEEE80211_STA_CONTROL_PORT)) |
1586 | set_sta_flags(sta, WLAN_STA_AUTHORIZED); | ||
1586 | 1587 | ||
1587 | rates = 0; | 1588 | rates = 0; |
1588 | basic_rates = 0; | 1589 | basic_rates = 0; |
diff --git a/net/mac80211/wext.c b/net/mac80211/wext.c index d84502644686..c14394744a9c 100644 --- a/net/mac80211/wext.c +++ b/net/mac80211/wext.c | |||
@@ -41,6 +41,7 @@ static int ieee80211_ioctl_siwgenie(struct net_device *dev, | |||
41 | return ret; | 41 | return ret; |
42 | sdata->u.mgd.flags &= ~IEEE80211_STA_AUTO_BSSID_SEL; | 42 | sdata->u.mgd.flags &= ~IEEE80211_STA_AUTO_BSSID_SEL; |
43 | sdata->u.mgd.flags &= ~IEEE80211_STA_EXT_SME; | 43 | sdata->u.mgd.flags &= ~IEEE80211_STA_EXT_SME; |
44 | sdata->u.mgd.flags &= ~IEEE80211_STA_CONTROL_PORT; | ||
44 | ieee80211_sta_req_auth(sdata); | 45 | ieee80211_sta_req_auth(sdata); |
45 | return 0; | 46 | return 0; |
46 | } | 47 | } |
@@ -124,6 +125,7 @@ static int ieee80211_ioctl_siwessid(struct net_device *dev, | |||
124 | return ret; | 125 | return ret; |
125 | 126 | ||
126 | sdata->u.mgd.flags &= ~IEEE80211_STA_EXT_SME; | 127 | sdata->u.mgd.flags &= ~IEEE80211_STA_EXT_SME; |
128 | sdata->u.mgd.flags &= ~IEEE80211_STA_CONTROL_PORT; | ||
127 | ieee80211_sta_req_auth(sdata); | 129 | ieee80211_sta_req_auth(sdata); |
128 | return 0; | 130 | return 0; |
129 | } | 131 | } |
@@ -181,6 +183,7 @@ static int ieee80211_ioctl_siwap(struct net_device *dev, | |||
181 | if (ret) | 183 | if (ret) |
182 | return ret; | 184 | return ret; |
183 | sdata->u.mgd.flags &= ~IEEE80211_STA_EXT_SME; | 185 | sdata->u.mgd.flags &= ~IEEE80211_STA_EXT_SME; |
186 | sdata->u.mgd.flags &= ~IEEE80211_STA_CONTROL_PORT; | ||
184 | ieee80211_sta_req_auth(sdata); | 187 | ieee80211_sta_req_auth(sdata); |
185 | return 0; | 188 | return 0; |
186 | } else if (sdata->vif.type == NL80211_IFTYPE_WDS) { | 189 | } else if (sdata->vif.type == NL80211_IFTYPE_WDS) { |