diff options
author | John W. Linville <linville@tuxdriver.com> | 2014-09-08 11:14:56 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-09-08 11:14:56 -0400 |
commit | 61a3d4f9d52c00b2016bc27fc66b10a194043f76 (patch) | |
tree | 938a7bd50bbef0215a20dfec99007b4c30828019 /net/mac80211 | |
parent | db906eb2101b0564b0c65edf4a8647395196342e (diff) | |
parent | 1bd3fa7b8c9b2936c16c6e6452f9cc991c405872 (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.c | 2 | ||||
-rw-r--r-- | net/mac80211/debugfs_sta.c | 2 | ||||
-rw-r--r-- | net/mac80211/iface.c | 4 | ||||
-rw-r--r-- | net/mac80211/mesh_plink.c | 7 | ||||
-rw-r--r-- | net/mac80211/mlme.c | 3 | ||||
-rw-r--r-- | net/mac80211/sta_info.c | 7 |
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 | ||
1079 | unlock_rcu: | 1084 | unlock_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; |