aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211')
-rw-r--r--net/mac80211/cfg.c5
-rw-r--r--net/mac80211/ieee80211_i.h2
-rw-r--r--net/mac80211/mlme.c5
-rw-r--r--net/mac80211/wext.c3
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) {