Commit 875ae5f68883c75aad826e715df8ec0619551a07
Committed by
John W. Linville
1 parent
b807b8a16b
Exists in
master
and in
7 other branches
mac80211: fix aggregation action frame handling with AP VLANs
When aggregation related action frames are enqueued for further work, and they originate from a STA that is part of an AP VLAN, they are currently enqueued for the AP interface. This breaks the sta_info_get() lookup in the actual work function, and because of that, aggregation sessions are not established for this STA. Fix this by replacing the sta_info_get call with a call to sta_info_get_bss. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Showing 1 changed file with 2 additions and 2 deletions Side-by-side Diff
net/mac80211/iface.c
... | ... | @@ -741,7 +741,7 @@ |
741 | 741 | int len = skb->len; |
742 | 742 | |
743 | 743 | mutex_lock(&local->sta_mtx); |
744 | - sta = sta_info_get(sdata, mgmt->sa); | |
744 | + sta = sta_info_get_bss(sdata, mgmt->sa); | |
745 | 745 | if (sta) { |
746 | 746 | switch (mgmt->u.action.u.addba_req.action_code) { |
747 | 747 | case WLAN_ACTION_ADDBA_REQ: |
... | ... | @@ -782,7 +782,7 @@ |
782 | 782 | * right, so terminate the session. |
783 | 783 | */ |
784 | 784 | mutex_lock(&local->sta_mtx); |
785 | - sta = sta_info_get(sdata, mgmt->sa); | |
785 | + sta = sta_info_get_bss(sdata, mgmt->sa); | |
786 | 786 | if (sta) { |
787 | 787 | u16 tid = *ieee80211_get_qos_ctl(hdr) & |
788 | 788 | IEEE80211_QOS_CTL_TID_MASK; |