aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211
diff options
context:
space:
mode:
authorJohn W. Linville <linville@tuxdriver.com>2014-09-08 11:14:56 -0400
committerJohn W. Linville <linville@tuxdriver.com>2014-09-08 11:14:56 -0400
commit61a3d4f9d52c00b2016bc27fc66b10a194043f76 (patch)
tree938a7bd50bbef0215a20dfec99007b4c30828019 /net/mac80211
parentdb906eb2101b0564b0c65edf4a8647395196342e (diff)
parent1bd3fa7b8c9b2936c16c6e6452f9cc991c405872 (diff)
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless
Diffstat (limited to 'net/mac80211')
-rw-r--r--net/mac80211/chan.c2
-rw-r--r--net/mac80211/debugfs_sta.c2
-rw-r--r--net/mac80211/iface.c4
-rw-r--r--net/mac80211/mesh_plink.c7
-rw-r--r--net/mac80211/mlme.c3
-rw-r--r--net/mac80211/sta_info.c7
6 files changed, 17 insertions, 8 deletions
diff --git a/net/mac80211/chan.c b/net/mac80211/chan.c
index 0da6f3a027e7..4c74e8da64b9 100644
--- a/net/mac80211/chan.c
+++ b/net/mac80211/chan.c
@@ -541,6 +541,8 @@ static void ieee80211_recalc_chanctx_chantype(struct ieee80211_local *local,
541 continue; 541 continue;
542 if (rcu_access_pointer(sdata->vif.chanctx_conf) != conf) 542 if (rcu_access_pointer(sdata->vif.chanctx_conf) != conf)
543 continue; 543 continue;
544 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
545 continue;
544 546
545 if (!compat) 547 if (!compat)
546 compat = &sdata->vif.bss_conf.chandef; 548 compat = &sdata->vif.bss_conf.chandef;
diff --git a/net/mac80211/debugfs_sta.c b/net/mac80211/debugfs_sta.c
index 4a20fb8f1e23..33eb4a43a2f3 100644
--- a/net/mac80211/debugfs_sta.c
+++ b/net/mac80211/debugfs_sta.c
@@ -168,7 +168,7 @@ static ssize_t sta_agg_status_read(struct file *file, char __user *userbuf,
168 p += scnprintf(p, sizeof(buf) + buf - p, "next dialog_token: %#02x\n", 168 p += scnprintf(p, sizeof(buf) + buf - p, "next dialog_token: %#02x\n",
169 sta->ampdu_mlme.dialog_token_allocator + 1); 169 sta->ampdu_mlme.dialog_token_allocator + 1);
170 p += scnprintf(p, sizeof(buf) + buf - p, 170 p += scnprintf(p, sizeof(buf) + buf - p,
171 "TID\t\tRX active\tDTKN\tSSN\t\tTX\tDTKN\tpending\n"); 171 "TID\t\tRX\tDTKN\tSSN\t\tTX\tDTKN\tpending\n");
172 172
173 for (i = 0; i < IEEE80211_NUM_TIDS; i++) { 173 for (i = 0; i < IEEE80211_NUM_TIDS; i++) {
174 tid_rx = rcu_dereference(sta->ampdu_mlme.tid_rx[i]); 174 tid_rx = rcu_dereference(sta->ampdu_mlme.tid_rx[i]);
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index 01eede7406a5..f75e5f132c5a 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -1175,8 +1175,8 @@ static void ieee80211_iface_work(struct work_struct *work)
1175 if (sta) { 1175 if (sta) {
1176 u16 last_seq; 1176 u16 last_seq;
1177 1177
1178 last_seq = le16_to_cpu( 1178 last_seq = IEEE80211_SEQ_TO_SN(le16_to_cpu(
1179 sta->last_seq_ctrl[rx_agg->tid]); 1179 sta->last_seq_ctrl[rx_agg->tid]));
1180 1180
1181 __ieee80211_start_rx_ba_session(sta, 1181 __ieee80211_start_rx_ba_session(sta,
1182 0, 0, 1182 0, 0,
diff --git a/net/mac80211/mesh_plink.c b/net/mac80211/mesh_plink.c
index 8f0887fc7128..b488e1859b18 100644
--- a/net/mac80211/mesh_plink.c
+++ b/net/mac80211/mesh_plink.c
@@ -957,7 +957,8 @@ mesh_plink_get_event(struct ieee80211_sub_if_data *sdata,
957 if (!matches_local) 957 if (!matches_local)
958 event = CNF_RJCT; 958 event = CNF_RJCT;
959 if (!mesh_plink_free_count(sdata) || 959 if (!mesh_plink_free_count(sdata) ||
960 (sta->llid != llid || sta->plid != plid)) 960 sta->llid != llid ||
961 (sta->plid && sta->plid != plid))
961 event = CNF_IGNR; 962 event = CNF_IGNR;
962 else 963 else
963 event = CNF_ACPT; 964 event = CNF_ACPT;
@@ -1074,6 +1075,10 @@ mesh_process_plink_frame(struct ieee80211_sub_if_data *sdata,
1074 goto unlock_rcu; 1075 goto unlock_rcu;
1075 } 1076 }
1076 1077
1078 /* 802.11-2012 13.3.7.2 - update plid on CNF if not set */
1079 if (!sta->plid && event == CNF_ACPT)
1080 sta->plid = plid;
1081
1077 changed |= mesh_plink_fsm(sdata, sta, event); 1082 changed |= mesh_plink_fsm(sdata, sta, event);
1078 1083
1079unlock_rcu: 1084unlock_rcu:
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 29fe91d6a094..8a73de6a5f5b 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -4389,8 +4389,7 @@ int ieee80211_mgd_assoc(struct ieee80211_sub_if_data *sdata,
4389 rcu_read_unlock(); 4389 rcu_read_unlock();
4390 4390
4391 if (bss->wmm_used && bss->uapsd_supported && 4391 if (bss->wmm_used && bss->uapsd_supported &&
4392 (sdata->local->hw.flags & IEEE80211_HW_SUPPORTS_UAPSD) && 4392 (sdata->local->hw.flags & IEEE80211_HW_SUPPORTS_UAPSD)) {
4393 sdata->wmm_acm != 0xff) {
4394 assoc_data->uapsd = true; 4393 assoc_data->uapsd = true;
4395 ifmgd->flags |= IEEE80211_STA_UAPSD_ENABLED; 4394 ifmgd->flags |= IEEE80211_STA_UAPSD_ENABLED;
4396 } else { 4395 } else {
diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
index e1f957d5935e..730030542024 100644
--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -1094,8 +1094,11 @@ void ieee80211_sta_ps_deliver_wakeup(struct sta_info *sta)
1094 unsigned long flags; 1094 unsigned long flags;
1095 struct ps_data *ps; 1095 struct ps_data *ps;
1096 1096
1097 if (sdata->vif.type == NL80211_IFTYPE_AP || 1097 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
1098 sdata->vif.type == NL80211_IFTYPE_AP_VLAN) 1098 sdata = container_of(sdata->bss, struct ieee80211_sub_if_data,
1099 u.ap);
1100
1101 if (sdata->vif.type == NL80211_IFTYPE_AP)
1099 ps = &sdata->bss->ps; 1102 ps = &sdata->bss->ps;
1100 else if (ieee80211_vif_is_mesh(&sdata->vif)) 1103 else if (ieee80211_vif_is_mesh(&sdata->vif))
1101 ps = &sdata->u.mesh.ps; 1104 ps = &sdata->u.mesh.ps;