diff options
author | Felix Fietkau <nbd@openwrt.org> | 2011-11-23 09:09:49 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-11-28 14:43:52 -0500 |
commit | bc192f8918ab8e41ba53b9ef881bc425ae92ed1b (patch) | |
tree | a7a0e2e7eefda7fefdd1942821b9d71ab7610a5c /net/mac80211/agg-tx.c | |
parent | 5ccc32ff46065f031075cdbbdfe21b9e3b05aaad (diff) |
mac80211: do not pass AP VLAN vif pointers to drivers
This fixes frequent WARN_ONs when using AP VLAN + aggregation, as these vifs
are virtual and not registered with drivers.
Use sta_info_get_bss instead of sta_info_get in aggregation callbacks, so
that these callbacks can find the station entry when called with the AP vif.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/agg-tx.c')
-rw-r--r-- | net/mac80211/agg-tx.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/mac80211/agg-tx.c b/net/mac80211/agg-tx.c index a2d9654aabcb..266cc871c72d 100644 --- a/net/mac80211/agg-tx.c +++ b/net/mac80211/agg-tx.c | |||
@@ -555,7 +555,7 @@ void ieee80211_start_tx_ba_cb(struct ieee80211_vif *vif, u8 *ra, u16 tid) | |||
555 | } | 555 | } |
556 | 556 | ||
557 | mutex_lock(&local->sta_mtx); | 557 | mutex_lock(&local->sta_mtx); |
558 | sta = sta_info_get(sdata, ra); | 558 | sta = sta_info_get_bss(sdata, ra); |
559 | if (!sta) { | 559 | if (!sta) { |
560 | mutex_unlock(&local->sta_mtx); | 560 | mutex_unlock(&local->sta_mtx); |
561 | #ifdef CONFIG_MAC80211_HT_DEBUG | 561 | #ifdef CONFIG_MAC80211_HT_DEBUG |
@@ -684,7 +684,7 @@ void ieee80211_stop_tx_ba_cb(struct ieee80211_vif *vif, u8 *ra, u8 tid) | |||
684 | 684 | ||
685 | mutex_lock(&local->sta_mtx); | 685 | mutex_lock(&local->sta_mtx); |
686 | 686 | ||
687 | sta = sta_info_get(sdata, ra); | 687 | sta = sta_info_get_bss(sdata, ra); |
688 | if (!sta) { | 688 | if (!sta) { |
689 | #ifdef CONFIG_MAC80211_HT_DEBUG | 689 | #ifdef CONFIG_MAC80211_HT_DEBUG |
690 | printk(KERN_DEBUG "Could not find station: %pM\n", ra); | 690 | printk(KERN_DEBUG "Could not find station: %pM\n", ra); |