diff options
author | Felix Fietkau <nbd@openwrt.org> | 2010-01-31 15:50:12 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-02-01 15:40:08 -0500 |
commit | 4754ffd68bc14de8db01451c49bb07adebe1e422 (patch) | |
tree | 4ca57be079cc9b46b66898e8a9f0966b83d06645 /net/mac80211/rx.c | |
parent | e0b20f1c67fc4379fce430ff720969f35e123eed (diff) |
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>
Diffstat (limited to 'net/mac80211/rx.c')
-rw-r--r-- | net/mac80211/rx.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 7e0b3e340389..5709307fcb9b 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c | |||
@@ -2359,7 +2359,7 @@ static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw, | |||
2359 | continue; | 2359 | continue; |
2360 | } | 2360 | } |
2361 | 2361 | ||
2362 | rx.sta = sta_info_get(prev, hdr->addr2); | 2362 | rx.sta = sta_info_get_bss(prev, hdr->addr2); |
2363 | 2363 | ||
2364 | rx.flags |= IEEE80211_RX_RA_MATCH; | 2364 | rx.flags |= IEEE80211_RX_RA_MATCH; |
2365 | prepares = prepare_for_handlers(prev, &rx, hdr); | 2365 | prepares = prepare_for_handlers(prev, &rx, hdr); |
@@ -2395,7 +2395,7 @@ next: | |||
2395 | } | 2395 | } |
2396 | 2396 | ||
2397 | if (prev) { | 2397 | if (prev) { |
2398 | rx.sta = sta_info_get(prev, hdr->addr2); | 2398 | rx.sta = sta_info_get_bss(prev, hdr->addr2); |
2399 | 2399 | ||
2400 | rx.flags |= IEEE80211_RX_RA_MATCH; | 2400 | rx.flags |= IEEE80211_RX_RA_MATCH; |
2401 | prepares = prepare_for_handlers(prev, &rx, hdr); | 2401 | prepares = prepare_for_handlers(prev, &rx, hdr); |