mac80211: fix hard lockup in sta_addba_resp_timer_expired
PATCH 1/1 mac80211: fix hard lockup in sta_addba_resp_timer_expired
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
--- net/mac80211/agg-tx.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
net/mac80211/agg-tx.c +1 -1
@@ -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];
Signature · 1 line
1.7.3.4
Quoted 8 lines · Stanislaw Gruszka
Problem is 2.6.35 specific, bug was introduced in backport of upstream
44271488b91c9eecf249e075a1805dd887e222d2commit.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 synchronousdel_timer().
Selfishly merged and committed to the F14 kernel tree, because I think I may be hitting the same issue once in a while here on my own T61. :)
Signature · 2 lines
Jarod Wilson [email protected]
Andi Kleen
AppliedQuoted 6 lines · Stanislaw Gruszka
Problem is 2.6.35 specific, bug was introduced in backport of upstream
44271488b91c9eecf249e075a1805dd887e222d2commit.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 synchronousdel_timer().
Applied to the 2.6.35.11 queue thanks.
-Andi