diff options
author | Johannes Berg <johannes.berg@intel.com> | 2010-06-10 10:21:44 +0200 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-06-14 15:39:28 -0400 |
commit | 7c3b1dd8f483bf4bcb9776cd9cd3b37dd327d7ea (patch) | |
tree | b5e42cc6f18b80c1036d0b9e5590d171fa84d074 /net/mac80211/ht.c | |
parent | 67c282c00c9c06733aae229662d209957f6d23a7 (diff) | |
download | op-kernel-dev-7c3b1dd8f483bf4bcb9776cd9cd3b37dd327d7ea.zip op-kernel-dev-7c3b1dd8f483bf4bcb9776cd9cd3b37dd327d7ea.tar.gz |
mac80211: defer RX agg session teardown to work
Since we want the code to be able to sleep
in the future, it must not be called from
the timer directly. To prepare, move it out
into the aggregation work.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/ht.c')
-rw-r--r-- | net/mac80211/ht.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/net/mac80211/ht.c b/net/mac80211/ht.c index 531a19d..730f808 100644 --- a/net/mac80211/ht.c +++ b/net/mac80211/ht.c @@ -132,6 +132,11 @@ void ieee80211_ba_session_work(struct work_struct *work) spin_lock_bh(&sta->lock); for (tid = 0; tid < STA_TID_NUM; tid++) { + if (test_and_clear_bit(tid, sta->ampdu_mlme.tid_rx_timer_expired)) + ___ieee80211_stop_rx_ba_session( + sta, tid, WLAN_BACK_RECIPIENT, + WLAN_REASON_QSTA_TIMEOUT); + tid_tx = sta->ampdu_mlme.tid_tx[tid]; if (!tid_tx) continue; |