From patchwork Tue Nov 16 22:07:20 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Seiderer X-Patchwork-Id: 12623239 X-Patchwork-Delegate: kvalo@adurom.com Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id ADB79C433F5 for ; Tue, 16 Nov 2021 22:07:31 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 805C061B49 for ; Tue, 16 Nov 2021 22:07:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231728AbhKPWK2 (ORCPT ); Tue, 16 Nov 2021 17:10:28 -0500 Received: from mout.gmx.net ([212.227.15.19]:42335 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231370AbhKPWK1 (ORCPT ); Tue, 16 Nov 2021 17:10:27 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1637100441; bh=RIc6Wv7HzTnmQXNy6Xs25l5nQkvi+3gn5IR+o2WfY1Y=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date; b=TL/uTuflJY0VuLaGVXRKwC5fa859R50Bahviv0zgmsU51KHIg5K/PuBAebZh02Fi1 jw/fh+bwodN6Gyc3EV8B1s5o7e4tm4x4HYj7iHM/rqKIvRM863s6Y6/njdYnlOrGOM /uc+hqa3mqBQDfWD7H+3Q5gLH9TeB7QygC7Dh00A= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from localhost.fritz.box ([62.216.209.243]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1M8QS2-1miit72sU4-004VZG; Tue, 16 Nov 2021 23:07:21 +0100 From: Peter Seiderer To: linux-wireless@vger.kernel.org Cc: ath9k-devel@qca.qualcomm.com, "David S . Miller" , Jakub Kicinski , linux-kernel@vger.kernel.org, netdev@vger.kernel.org Subject: [PATCH v1] ath9k: fix intr_txqs setting Date: Tue, 16 Nov 2021 23:07:20 +0100 Message-Id: <20211116220720.30145-1-ps.report@gmx.net> X-Mailer: git-send-email 2.33.1 MIME-Version: 1.0 X-Provags-ID: V03:K1:Box3XGQPFl2JGGKJGy26znZeVn1xoVH/6uzAf3I+fQL/gCYWRzH H/YJqr6N3npf3FwTvpblKrwvyCbIRuA5PrciFKR2/lgo85nS8o+9BDD8j6ae3mHXFKIhTcR chInRKKxcXZPALlLKcP5mGXki+a72LnCsg0TzbU+518p4MjsHU47rlsP1ydJeo0E64sTNmQ jzCWg3KfyQZGHg/f9Akiw== X-UI-Out-Filterresults: notjunk:1;V03:K0:ah2Lq1R+nbg=:6OZywLbYMDRAm9fk4keKvW 1z8ZYMX8nskJzE+1FBPXE0bKJl/+CVQUBzUVpdWlpqKm9MJEHwoCeDMmP2gMZKcNGF4r95049 zzM3RIqGw2y+ijYtRmgvJQRb/rvYWCg7lDpKufLLCEeMdvwV9+UHvjLq6nzUmv3JzxxahrZvz 0Dk3sUk4uxd6ZrkH2Urz6fzfuJA3FSDakp0tDhFPBAmJmHmCP3QkRGmiQ2P/ItXLMLsKqTz3G F1lrX0eQJk/L6r1viIa6wXLCVF36/HO3KVH59J4BRda5MQcrgeZBJW0ZC/NzVCm9vC8Rit1ZJ k0rWxlpom3RkBloWT17kyJcRVnxzNkGTXc1f8qG0QsESs8WdyB9B6uxShxbDPt5FO20CKeAYR Nahix/jHET9L+DgWLOOQp6kJxm8i2jg50nV26m/yrlBsPPis+Y46OOdJ3LwqN4LxW1bLL13WO VL26RFAf9w+TFyYz5z1lQyOUIhopNMz3KFoThYJCHNV29soY1BBLmAZ4k4w/DdBiv5AVlNG5G GQpCH7e485ojoDDk95VgXgSX/sV4xL5UoQo0sfPLx/LH52sBq6dPxSvnIwvNDq8CGIoM23wiF P4DJfPcVxOLedZJ+SQDo9ptgSzTwRyHf8B2/X4/xwFPXJqtpBZkLMc9p45KuyQ1BS4VjUkWMB 1VNNOE8GCDYfLP9/WbNxVIGEUd9TgjdvZmM2x8z3zF6grBSwi32JFBFYV/0+0UMEodpougoQm s1g8cYfHWV12oMnVLkMe8QjnPRil7h9J4uTHP7EQM4DBkm368YddvB4/pYGaD1ZeMviod/6TP jhUllgiZi3252XayAHFYd9ofRst2tV3If+0DFA+aYTYvGahNsCk5w66U2P4j3Dg4XiwE5u+AO TF56bx4a1gesUM4/4zCr9oUCdsDiv91jKIYLtG5/F26O+E4s3ZaXk1HYZJaWVFIfQ7eXVHqmD XzAeyFnAiSDD/U+sbqJTzkcATYS7ex7Uf70pKbaw1XrxqR8U1SZ/B4xUQnMgFSd+/V8MHZv4H bPdxMmo/ii+n9T65iMVFYqVTUe+3u2v7pj7nblwbj1Iv495pk2zaNhhwk783SRUj4Bal6XVAM uXWqYupX6heC7c= Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org The struct ath_hw member intr_txqs is never reset/assigned outside of ath9k_hw_init_queues() and with the used bitwise-or in the interrupt handling ar9002_hw_get_isr() accumulates all ever set interrupt flags. Fix this by using a pure assign instead of bitwise-or for the first line (note: intr_txqs is only evaluated in case ATH9K_INT_TX bit is set). Signed-off-by: Peter Seiderer --- Note: - the ath5k_hw member ah_txq_isr_txok_all in ath5k_hw_get_isr() (see drivers/net/wireless/ath/ath5k/dma.c) sufferes from the same problem and can be fixed by an assignment to zero before furhter usage (but I lack suitable hardware for testing) --- drivers/net/wireless/ath/ath9k/ar9002_mac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/ath/ath9k/ar9002_mac.c b/drivers/net/wireless/ath/ath9k/ar9002_mac.c index ce9a0a53771e..fba5a847c3bb 100644 --- a/drivers/net/wireless/ath/ath9k/ar9002_mac.c +++ b/drivers/net/wireless/ath/ath9k/ar9002_mac.c @@ -120,7 +120,7 @@ static bool ar9002_hw_get_isr(struct ath_hw *ah, enum ath9k_int *masked, AR_ISR_TXEOL); } - ah->intr_txqs |= MS(s0_s, AR_ISR_S0_QCU_TXOK); + ah->intr_txqs = MS(s0_s, AR_ISR_S0_QCU_TXOK); ah->intr_txqs |= MS(s0_s, AR_ISR_S0_QCU_TXDESC); ah->intr_txqs |= MS(s1_s, AR_ISR_S1_QCU_TXERR); ah->intr_txqs |= MS(s1_s, AR_ISR_S1_QCU_TXEOL);