diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2009-11-25 11:46:18 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-12-21 18:38:51 -0500 |
commit | abe60632f311d515b082b450504ee24006023951 (patch) | |
tree | a51fc3b135fa8a31cc0d7953be43502ecc6433c6 /net/mac80211/agg-tx.c | |
parent | 15920d8afc87861672e16fa95ae2764b065d6dd3 (diff) |
mac80211: make station management completely depend on vif
The station management currently uses the virtual
interface, but you cannot add the same station to
multiple virtual interfaces if you're communicating
with it in multiple ways.
This restriction should be lifted so that in the
future we can, for instance, support bluetooth 3
with an access point that mac80211 is already
associated to.
We can do that by requiring all sta_info_get users
to provide the virtual interface and making the RX
code aware that an address may match more than one
station struct. Thanks to the previous patches this
one isn't all that large and except for the RX and
TX status paths changes has low complexity.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
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 5e3a7eccef5a..b05de532c379 100644 --- a/net/mac80211/agg-tx.c +++ b/net/mac80211/agg-tx.c | |||
@@ -441,7 +441,7 @@ void ieee80211_start_tx_ba_cb(struct ieee80211_vif *vif, u8 *ra, u16 tid) | |||
441 | } | 441 | } |
442 | 442 | ||
443 | rcu_read_lock(); | 443 | rcu_read_lock(); |
444 | sta = sta_info_get(local, ra); | 444 | sta = sta_info_get(sdata, ra); |
445 | if (!sta) { | 445 | if (!sta) { |
446 | rcu_read_unlock(); | 446 | rcu_read_unlock(); |
447 | #ifdef CONFIG_MAC80211_HT_DEBUG | 447 | #ifdef CONFIG_MAC80211_HT_DEBUG |
@@ -564,7 +564,7 @@ void ieee80211_stop_tx_ba_cb(struct ieee80211_vif *vif, u8 *ra, u8 tid) | |||
564 | #endif /* CONFIG_MAC80211_HT_DEBUG */ | 564 | #endif /* CONFIG_MAC80211_HT_DEBUG */ |
565 | 565 | ||
566 | rcu_read_lock(); | 566 | rcu_read_lock(); |
567 | sta = sta_info_get(local, ra); | 567 | sta = sta_info_get(sdata, ra); |
568 | if (!sta) { | 568 | if (!sta) { |
569 | #ifdef CONFIG_MAC80211_HT_DEBUG | 569 | #ifdef CONFIG_MAC80211_HT_DEBUG |
570 | printk(KERN_DEBUG "Could not find station: %pM\n", ra); | 570 | printk(KERN_DEBUG "Could not find station: %pM\n", ra); |