diff options
author | Sujith <Sujith.Manoharan@atheros.com> | 2010-02-10 14:52:21 +0530 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-02-10 16:36:52 -0500 |
commit | 4cad6c7c38930618d77e65af82c1403d63879eee (patch) | |
tree | 9e8c14e0819c42c8ac290f6a0bba5ca45a3ecef2 /net/mac80211/agg-tx.c | |
parent | f32338319f10c4ca5499c19edc5b3618896920ba (diff) | |
download | linux-3.10-4cad6c7c38930618d77e65af82c1403d63879eee.tar.gz linux-3.10-4cad6c7c38930618d77e65af82c1403d63879eee.tar.bz2 linux-3.10-4cad6c7c38930618d77e65af82c1403d63879eee.zip |
mac80211: Deny TX BA session requests during disassociation
In associated state, when bringing an interface down, existing
BA sessions are torn down. When this is in progress, nothing
prevents mac80211 from accepting another BA session start request.
Use a new station flag to fix this.
Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Acked-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 | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/net/mac80211/agg-tx.c b/net/mac80211/agg-tx.c index 718fbcff84d..5538e1b4a69 100644 --- a/net/mac80211/agg-tx.c +++ b/net/mac80211/agg-tx.c @@ -237,6 +237,14 @@ int ieee80211_start_tx_ba_session(struct ieee80211_sta *pubsta, u16 tid) sdata->vif.type != NL80211_IFTYPE_AP) return -EINVAL; + if (test_sta_flags(sta, WLAN_STA_DISASSOC)) { +#ifdef CONFIG_MAC80211_HT_DEBUG + printk(KERN_DEBUG "Disassociation is in progress. " + "Denying BA session request\n"); +#endif + return -EINVAL; + } + if (test_sta_flags(sta, WLAN_STA_SUSPEND)) { #ifdef CONFIG_MAC80211_HT_DEBUG printk(KERN_DEBUG "Suspend in progress. " |