Commit 875ae5f68883c75aad826e715df8ec0619551a07

Authored by Felix Fietkau
Committed by John W. Linville
1 parent b807b8a16b

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;