From patchwork Wed Mar 29 11:53:06 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Johannes Berg X-Patchwork-Id: 9651405 X-Patchwork-Delegate: johannes@sipsolutions.net Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 15098601D7 for ; Wed, 29 Mar 2017 11:54:28 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 025DE2845D for ; Wed, 29 Mar 2017 11:54:28 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id EB67428471; Wed, 29 Mar 2017 11:54:27 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9AA892845D for ; Wed, 29 Mar 2017 11:54:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932219AbdC2LyZ (ORCPT ); Wed, 29 Mar 2017 07:54:25 -0400 Received: from s3.sipsolutions.net ([5.9.151.49]:45384 "EHLO sipsolutions.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755855AbdC2LxK (ORCPT ); Wed, 29 Mar 2017 07:53:10 -0400 Received: by sipsolutions.net with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89_RC7) (envelope-from ) id 1ctC9z-0004JU-8G; Wed, 29 Mar 2017 13:53:07 +0200 Message-ID: <1490788386.7948.21.camel@sipsolutions.net> Subject: Re: [REGRESSION] mac80211: IBSS vif queue stopped when started after 11s vif From: Johannes Berg To: Sven Eckelmann Cc: linux-wireless@vger.kernel.org, netdev@vger.kernel.org, Michal Kazior Date: Wed, 29 Mar 2017 13:53:06 +0200 In-Reply-To: <5090047.94hdUy33Q8@bentobox> (sfid-20170329_130745_753898_724474CD) References: <1978424.XTv2Qph05K@bentobox> <1490773761.7948.3.camel@sipsolutions.net> <5090047.94hdUy33Q8@bentobox> (sfid-20170329_130745_753898_724474CD) X-Mailer: Evolution 3.22.4-1 Mime-Version: 1.0 Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP >     if (local->ops->wake_tx_queue) >      return; > > evaluates to true. The rest rest of the function is therefore always > skipped for ath9k. Ahh, yes, ok. > Removing this is enough to fix the problem. And now you will propably > say "hey, this is not my code". And this is the reason why I have now > CC'ed the author of 80a83cfc434b ("mac80211: skip netdev queue > control with software queuing"). This change in > ieee80211_propagate_queue_wake is basically breaking  > the (delayed) startup of the ibss netdev queue [1] when the device > was offchan during the ieee80211_do_open of the ibss interface. > > Not sure whether removing it in ieee80211_propagate_queue_wake will > have other odd side effects with software queuing. Maybe Michal > Kazior can tell us if it is safe to remove it. No, it's the other way around. Michal's patches correctly added a test for this to __ieee80211_stop_queue(), the only missing thing is that this test should also be in ieee80211_do_open() like this: johannes diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c index 40813dd3301c..5bb0c5012819 100644 --- a/net/mac80211/iface.c +++ b/net/mac80211/iface.c @@ -718,7 +718,8 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up) ieee80211_recalc_ps(local); if (sdata->vif.type == NL80211_IFTYPE_MONITOR || - sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { + sdata->vif.type == NL80211_IFTYPE_AP_VLAN || + local->ops->wake_tx_queue) { /* XXX: for AP_VLAN, actually track AP queues */ netif_tx_start_all_queues(dev); } else if (dev) {