]> git.hungrycats.org Git - linux/commitdiff
mac80211: fix hard lockup in sta_addba_resp_timer_expired
authorStanislaw Gruszka <sgruszka@redhat.com>
Mon, 10 Jan 2011 12:38:21 +0000 (13:38 +0100)
committerAK <andi@firstfloor.org>
Sun, 6 Feb 2011 19:03:53 +0000 (11:03 -0800)
Problem is 2.6.35 specific, bug was introduced in backport
of upstream 44271488b91c9eecf249e075a1805dd887e222d2 commit.

We can not call del_timer_sync(addba_resp_timer) from
___ieee80211_stop_tx_ba_session(), as this function can be called from
that timer callback. To fix, simply use not synchronous del_timer().

Resolve https://bugzilla.redhat.com/show_bug.cgi?id=667459

Reported-and-tested-by: Mathieu Chouquet-Stringer <mathieu-acct@csetco.com>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
net/mac80211/agg-tx.c

index f935490560ba0c50443eaadd0671707ff1d23299..72ab63d6a5368743b8d09cd6e59a3016d97b885a 100644 (file)
@@ -138,7 +138,7 @@ int ___ieee80211_stop_tx_ba_session(struct sta_info *sta, u16 tid,
               sta->sta.addr, tid);
 #endif /* CONFIG_MAC80211_HT_DEBUG */
 
-       del_timer_sync(&tid_tx->addba_resp_timer);
+       del_timer(&tid_tx->addba_resp_timer);
 
        state = &sta->ampdu_mlme.tid_state_tx[tid];