From 827346ec18d34ec845d5183f69dec8b6b03b426c Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Wed, 30 May 2012 15:32:24 +0200 Subject: [PATCH] --- yaml --- r: 310729 b: refs/heads/master c: d8c7aae64cd2db5eccc631c29fa978a24fb1feef h: refs/heads/master i: 310727: 35b81021c3291d69baff43ef1ecc84430538be81 v: v3 --- [refs] | 2 +- trunk/net/mac80211/agg-rx.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index b1512841ae58..575fd3648e2e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 71ecfa1893034eeb1c93e02e22ee2ad26d080858 +refs/heads/master: d8c7aae64cd2db5eccc631c29fa978a24fb1feef diff --git a/trunk/net/mac80211/agg-rx.c b/trunk/net/mac80211/agg-rx.c index 26ddb699d693..c649188314cc 100644 --- a/trunk/net/mac80211/agg-rx.c +++ b/trunk/net/mac80211/agg-rx.c @@ -145,15 +145,20 @@ static void sta_rx_agg_session_timer_expired(unsigned long data) struct tid_ampdu_rx *tid_rx; unsigned long timeout; + rcu_read_lock(); tid_rx = rcu_dereference(sta->ampdu_mlme.tid_rx[*ptid]); - if (!tid_rx) + if (!tid_rx) { + rcu_read_unlock(); return; + } timeout = tid_rx->last_rx + TU_TO_JIFFIES(tid_rx->timeout); if (time_is_after_jiffies(timeout)) { mod_timer(&tid_rx->session_timer, timeout); + rcu_read_unlock(); return; } + rcu_read_unlock(); #ifdef CONFIG_MAC80211_HT_DEBUG printk(KERN_DEBUG "rx session timer expired on tid %d\n", (u16)*ptid);