summaryrefslogtreecommitdiff
path: root/net/mac80211/agg-rx.c
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2012-06-21 13:44:42 +0900
committerPaul Mundt <lethal@linux-sh.org>2012-06-21 13:44:42 +0900
commit7b98cf0cf4e8798b9e7435f966ed0d90a2a925de (patch)
treea5d2a80f121a5c854773ddc85b1d9cbd6b840861 /net/mac80211/agg-rx.c
parente1eaf354528ceb002c8e2840a55c44cd76aaaed8 (diff)
parent06d5631f56460917af3d9417ef63811cf0cad9ce (diff)
downloadlinux-7b98cf0cf4e8798b9e7435f966ed0d90a2a925de.tar.gz
Merge branch 'common/pfc' into sh-latest
Diffstat (limited to 'net/mac80211/agg-rx.c')
-rw-r--r--net/mac80211/agg-rx.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/net/mac80211/agg-rx.c b/net/mac80211/agg-rx.c
index 26ddb699d693..c649188314cc 100644
--- a/net/mac80211/agg-rx.c
+++ b/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);