Messages in this thread Patch in this message | | | Date | Wed, 6 Sep 2017 15:19:22 +0200 | From | Stefano Brivio <> | Subject | Re: hung task in mac80211 |
| |
On Wed, 06 Sep 2017 14:48:35 +0200 Johannes Berg <johannes@sipsolutions.net> wrote:
> I'll look in a bit - but > > > + mutex_unlock(&sta->ampdu_mlme.mtx); > > ___ieee80211_stop_rx_ba_session( > > sta, tid, WLAN_BACK_RECIPIENT, > > WLAN_REASON_QSTA_TIMEOUT, true); > > This already has three underscores so shouldn't drop.
Right, of course.
> [...] > > + mutex_unlock(&sta->ampdu_mlme.mtx); > > __ieee80211_start_rx_ba_session(sta, 0, 0, > > 0, 1, tid, > > maybe this one needs a ___ version then?
Either that, or as it's a single call, perhaps just the following? Matter of taste I guess...
diff --git a/net/mac80211/ht.c b/net/mac80211/ht.c index c92df492e898..377dd3c233d3 100644 --- a/net/mac80211/ht.c +++ b/net/mac80211/ht.c @@ -332,10 +332,13 @@ void ieee80211_ba_session_work(struct work_struct *work) WLAN_REASON_UNSPECIFIED, true); if (test_and_clear_bit(tid, - sta->ampdu_mlme.tid_rx_manage_offl)) + sta->ampdu_mlme.tid_rx_manage_offl)) { + mutex_unlock(&sta->ampdu_mlme.mtx); __ieee80211_start_rx_ba_session(sta, 0, 0, 0, 1, tid, IEEE80211_MAX_AMPDU_BUF, false, true); + mutex_lock(&sta->ampdu_mlme.mtx); + } if (test_and_clear_bit(tid + IEEE80211_NUM_TIDS, sta->ampdu_mlme.tid_rx_manage_offl)) -- Stefano
| |