mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-02-12 14:52:14 +00:00
mac80211: fix sta lookup for received action frames on an AP VLAN
When looking for a matching interface, __ieee80211_rx_handle_packet loops over all active interfaces, looking for matching stations. Because AP VLAN interfaces are not processed as part of this loop, it needs to use sta_info_get_bss instead of sta_info_get in order to find a STA that has been moved to a VLAN. This fixes issues with aggregation setup/teardown. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
e0b20f1c67
commit
4754ffd68b
@ -2359,7 +2359,7 @@ static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw,
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
rx.sta = sta_info_get(prev, hdr->addr2);
|
rx.sta = sta_info_get_bss(prev, hdr->addr2);
|
||||||
|
|
||||||
rx.flags |= IEEE80211_RX_RA_MATCH;
|
rx.flags |= IEEE80211_RX_RA_MATCH;
|
||||||
prepares = prepare_for_handlers(prev, &rx, hdr);
|
prepares = prepare_for_handlers(prev, &rx, hdr);
|
||||||
@ -2395,7 +2395,7 @@ next:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (prev) {
|
if (prev) {
|
||||||
rx.sta = sta_info_get(prev, hdr->addr2);
|
rx.sta = sta_info_get_bss(prev, hdr->addr2);
|
||||||
|
|
||||||
rx.flags |= IEEE80211_RX_RA_MATCH;
|
rx.flags |= IEEE80211_RX_RA_MATCH;
|
||||||
prepares = prepare_for_handlers(prev, &rx, hdr);
|
prepares = prepare_for_handlers(prev, &rx, hdr);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user