Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754360AbdIFNTc convert rfc822-to-8bit (ORCPT ); Wed, 6 Sep 2017 09:19:32 -0400 Received: from mx1.redhat.com ([209.132.183.28]:49862 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753494AbdIFNT3 (ORCPT ); Wed, 6 Sep 2017 09:19:29 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 00BC181DFA Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=sbrivio@redhat.com Date: Wed, 6 Sep 2017 15:19:22 +0200 From: Stefano Brivio To: Johannes Berg Cc: Matteo Croce , linux-wireless@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: hung task in mac80211 Message-ID: <20170906151922.4a320b1d@elisabeth> In-Reply-To: <1504702115.13457.16.camel@sipsolutions.net> References: <20170906144019.1c98a636@elisabeth> <1504702115.13457.16.camel@sipsolutions.net> Organization: Red Hat MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Wed, 06 Sep 2017 13:19:29 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1328 Lines: 45 On Wed, 06 Sep 2017 14:48:35 +0200 Johannes Berg 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