mac80211: fix RX aggregation timer
authorJohannes Berg <johannes.berg@intel.com>
Thu, 10 Jun 2010 08:21:45 +0000 (10:21 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 14 Jun 2010 19:39:28 +0000 (15:39 -0400)
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>
net/mac80211/agg-rx.c

index 1c4320b..aa858a0 100644 (file)
@@ -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);