aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/agg-rx.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2010-06-10 10:21:45 +0200
committerJohn W. Linville <linville@tuxdriver.com>2010-06-14 15:39:28 -0400
commitf955ebb44798e0058c987a0817810d2542e87349 (patch)
treecc31892c229120ca206ea2d19fc0e6c13f0bad47 /net/mac80211/agg-rx.c
parentmac80211: defer RX agg session teardown to work (diff)
downloadlinux-dev-f955ebb44798e0058c987a0817810d2542e87349.tar.xz
linux-dev-f955ebb44798e0058c987a0817810d2542e87349.zip
mac80211: fix RX aggregation timer
I noticed that when there was _no_ traffic at all on a given aggregation session, it would never time out. This won't happen unless you forced creating a session, but fix it anyway. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/agg-rx.c')
-rw-r--r--net/mac80211/agg-rx.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/mac80211/agg-rx.c b/net/mac80211/agg-rx.c
index 1c4320b01e3c..aa858a03951c 100644
--- a/net/mac80211/agg-rx.c
+++ b/net/mac80211/agg-rx.c
@@ -274,6 +274,10 @@ void ieee80211_process_addba_request(struct ieee80211_local *local,
/* activate it for RX */
rcu_assign_pointer(sta->ampdu_mlme.tid_rx[tid], tid_agg_rx);
+
+ if (timeout)
+ mod_timer(&tid_agg_rx->session_timer, TU_TO_EXP_TIME(timeout));
+
end:
spin_unlock_bh(&sta->lock);