From patchwork Mon Jun 27 11:22:49 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Kazior X-Patchwork-Id: 9200375 X-Patchwork-Delegate: kvalo@adurom.com 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 95BAA60752 for ; Mon, 27 Jun 2016 11:21:45 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8486327F99 for ; Mon, 27 Jun 2016 11:21:45 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 769D32857A; Mon, 27 Jun 2016 11:21:45 +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=-4.1 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED, T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 1EAF927F99 for ; Mon, 27 Jun 2016 11:21:45 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.85_2 #1 (Red Hat Linux)) id 1bHUbj-0002d3-1p; Mon, 27 Jun 2016 11:21:39 +0000 Received: from mail-lf0-x22b.google.com ([2a00:1450:4010:c07::22b]) by bombadil.infradead.org with esmtps (Exim 4.85_2 #1 (Red Hat Linux)) id 1bHUbg-0002Vs-My for ath10k@lists.infradead.org; Mon, 27 Jun 2016 11:21:37 +0000 Received: by mail-lf0-x22b.google.com with SMTP id q132so153967073lfe.3 for ; Mon, 27 Jun 2016 04:21:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tieto.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=yUeqY56Sxv7z82x822l0wEo4oHzR1xNxhrtdCFJ9N28=; b=pGoC0v/X5QNcgQvPGp3lNPzbSI1Pj0UA4DvWtZ3nEvEJQmjnFndAREhW82Qt7tQKav sl66cjDPZJ++tLWcHIURdoXPuCALr+3UHQEN5N7COhQZP5l0icnsLgozwLey7Xd1vdQ0 bjCkAiJRwdDVIc+pFVnQ8fthgJ+Y5XOry1ndI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=yUeqY56Sxv7z82x822l0wEo4oHzR1xNxhrtdCFJ9N28=; b=nMGyd1SGs8ICTva5KFDKejh+cNCRm6nG4ys8p7mbwcspHnPTypomuX45rxa/Ja3wjy SqYysfLrN62ZNAL8X2JK7+Em2TZjyJvLuPMXAJ+7KInHuU48CNnEeS+OPKu9Wm8mcr3t 17Hq9EPWJ5qoCd+xUa7rrF4Uul0NVxsvKR4mRFpHV6GCpGJEYIhuxkhOgvDW1qqvF7+k t+rkqWy+BFPjL47JI/pK/g2E+WAhFrKOwdEfI7NxVTn6k6vZML3l34y1nT46BoOWBUaU fU0VidUz0FnG58zn2T0cYcW5/uwd9d32U0QikZSNdS7SiW45D1lSYCIPr2DSDWPWoxkO UH6w== X-Gm-Message-State: ALyK8tJnZrQOBy9OX1e0d7PtNZUl1+IbbUos8RKoZ/xk4ksTK0MwUYL07ff3c/QGn1xpaWaHj6OmhVzHj7GU5suf7DWSKAgqBCd/CHnNim/GCdMPt5msCrn3zLKmjeja/hIuDIXD X-Received: by 10.46.33.226 with SMTP id h95mr4972700lji.35.1467026474613; Mon, 27 Jun 2016 04:21:14 -0700 (PDT) Received: from localhost.localdomain ([91.198.246.8]) by smtp.gmail.com with ESMTPSA id 70sm3202751lfp.34.2016.06.27.04.21.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 27 Jun 2016 04:21:13 -0700 (PDT) From: Michal Kazior To: kvalo@qca.qualcomm.com Subject: [RFT] mac80211: fix fq lockdep warnings Date: Mon, 27 Jun 2016 13:22:49 +0200 Message-Id: <1467026569-19329-1-git-send-email-michal.kazior@tieto.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <878txzo7c6.fsf@kamboji.qca.qualcomm.com> References: <878txzo7c6.fsf@kamboji.qca.qualcomm.com> X-DomainID: tieto.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20160627_042136_942259_F7AF8BEA X-CRM114-Status: UNSURE ( 9.35 ) X-CRM114-Notice: Please train this message. X-BeenThere: ath10k@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-wireless@vger.kernel.org, Michal Kazior , ath10k@lists.infradead.org MIME-Version: 1.0 Sender: "ath10k" Errors-To: ath10k-bounces+patchwork-ath10k=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Some lockdep assertions were not fulfilled and resulted in a kernel warning/call trace. Existing code sequences should've guranteed safety but it's always good to be extra careful. The call trace could look like this: [ 237.335805] ------------[ cut here ]------------ [ 237.335852] WARNING: CPU: 3 PID: 1921 at include/net/fq_impl.h:22 fq_flow_dequeue+0xed/0x140 [mac80211] [ 237.335855] Modules linked in: ath10k_pci(E-) ath10k_core(E) ath(E) mac80211(E) cfg80211(E) [ 237.335913] CPU: 3 PID: 1921 Comm: rmmod Tainted: G W E 4.7.0-rc4-wt-ath+ #1377 [ 237.335916] Hardware name: Hewlett-Packard HP ProBook 6540b/1722, BIOS 68CDD Ver. F.04 01/27/2010 [ 237.335918] 00200286 00200286 eff85dac c14151e2 f901574e 00000000 eff85de0 c1081075 [ 237.335928] c1ab91f0 00000003 00000781 f901574e 00000016 f8fbabad f8fbabad 00000016 [ 237.335938] eb24ff60 00000000 ef3886c0 eff85df4 c10810ba 00000009 00000000 00000000 [ 237.335948] Call Trace: [ 237.335953] [] dump_stack+0x76/0xb4 [ 237.335957] [] __warn+0xe5/0x100 [ 237.336002] [] ? fq_flow_dequeue+0xed/0x140 [mac80211] [ 237.336046] [] ? fq_flow_dequeue+0xed/0x140 [mac80211] [ 237.336053] [] warn_slowpath_null+0x2a/0x30 [ 237.336095] [] fq_flow_dequeue+0xed/0x140 [mac80211] [ 237.336137] [] fq_flow_reset.constprop.56+0x2a/0x90 [mac80211] [ 237.336180] [] fq_reset.constprop.59+0x2a/0x50 [mac80211] [ 237.336222] [] ieee80211_txq_teardown_flows+0x38/0x40 [mac80211] [ 237.336258] [] ieee80211_unregister_hw+0xe4/0x120 [mac80211] [ 237.336275] [] ath10k_mac_unregister+0x16/0x50 [ath10k_core] [ 237.336292] [] ath10k_core_unregister+0x3d/0x90 [ath10k_core] [ 237.336301] [] ath10k_pci_remove+0x36/0xa0 [ath10k_pci] [ 237.336307] [] pci_device_remove+0x38/0xb0 ... Fixes: 5caa328e3811 ("mac80211: implement codel on fair queuing flows") Fixes: fa962b92120b ("mac80211: implement fair queueing per txq") Reported-by: Valo, Kalle Signed-off-by: Michal Kazior Tested-by: Kalle Valo --- Hi Kalle, Can you verify this fixes call traces you're seeing, please? net/mac80211/tx.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 44ec605a5682..1975c22132c6 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c @@ -1445,7 +1445,9 @@ int ieee80211_txq_setup_flows(struct ieee80211_local *local) local->cvars = kcalloc(fq->flows_cnt, sizeof(local->cvars[0]), GFP_KERNEL); if (!local->cvars) { + spin_lock_bh(&fq->lock); fq_reset(fq, fq_skb_free_func); + spin_unlock_bh(&fq->lock); return -ENOMEM; } @@ -1465,7 +1467,9 @@ void ieee80211_txq_teardown_flows(struct ieee80211_local *local) kfree(local->cvars); local->cvars = NULL; + spin_lock_bh(&fq->lock); fq_reset(fq, fq_skb_free_func); + spin_unlock_bh(&fq->lock); } struct sk_buff *ieee80211_tx_dequeue(struct ieee80211_hw *hw,