Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp1721837pxb; Wed, 9 Feb 2022 03:07:00 -0800 (PST) X-Google-Smtp-Source: ABdhPJz6k3XE3eNNnidrKVI0FIJj33/TmDmCCiYHYKgxqL44uHeUUjLdoqlWaWAd3Uxi9yrjLmrD X-Received: by 2002:a63:3e8b:: with SMTP id l133mr1436029pga.210.1644404819263; Wed, 09 Feb 2022 03:06:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644404819; cv=none; d=google.com; s=arc-20160816; b=jXQZC8Ous/jbr+2bcYSzdWEqbKJ1mn1GVM06JqPip/D/LMIxp+OIi7NvZ2teTUh1P9 MIrVViB80mA47BOqFIkIqkgQiowPxKeJ8/1tIltXBomA57WdlOEwnuXpf543va56BfRv Nu/B3NhWnI50VRLyQZXZROtmbHlNB1WBj8ibrx4zpU171lccXZ0pWZcTprkF5NElbKHZ aWSCYMc+vEEDgeP90zpSOg2KHqYjn0CI4gf5/2ecLfxHdKivWFPEKO/1cGJ0ay5oEChK CMgDh6EHNUiq5rSXBrKObHNVBt4tp0gnjr4+UbHjGniSGkuk/UD29JGyjqxNWk3Cx3o6 DPPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:references :in-reply-to:subject:cc:to:dkim-signature:from; bh=7H1TNW6alNy/BCKyeSCkuIHMSmjt5EiY3RdmMhwrOCg=; b=Rh7HirF4iCTfookOpSiNccMiu2MbYVg2NsNaWWb4R8xnTsF95fAjvJ0m1zv0i7o+yH 3MEA5FHqfQMs4pZXY2quUbFcjGSyiUlFJiiKwdNLw/DFb9Vvyn6N/ZIqnC3wzX0we0fq uryP1ETY8H80JwNVBvLp9jdO61GEioROGYRFRkd2D4jI4qXxgsjw9aMJUDacSJXB66Ko AMo7IZk4kEczA2hRDO6yRHe2xOBvVG+hJT35dYkKb+IRmLbKUz010SMB97RJ9DNpB3nF ov1PBZZYmMZp+gS6t5eeNX7567yUWI38S5J8xtg2Dx2hTThIaue8msP9vrIY9Mf1EJu7 W7MA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@toke.dk header.s=20161023 header.b=SDtmhTSu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=toke.dk Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id a2si15734165pgk.61.2022.02.09.03.06.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Feb 2022 03:06:59 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@toke.dk header.s=20161023 header.b=SDtmhTSu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=toke.dk Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id E167CE05ADE3; Wed, 9 Feb 2022 01:35:32 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1380466AbiBHPcR (ORCPT + 99 others); Tue, 8 Feb 2022 10:32:17 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45212 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235109AbiBHPcQ (ORCPT ); Tue, 8 Feb 2022 10:32:16 -0500 Received: from mail.toke.dk (mail.toke.dk [IPv6:2a0c:4d80:42:2002::664]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4B917C061576; Tue, 8 Feb 2022 07:32:15 -0800 (PST) From: Toke =?utf-8?Q?H=C3=B8iland-J=C3=B8rgensen?= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=toke.dk; s=20161023; t=1644334333; bh=wgBzt5vK3cFN8FMnyCpL9e4AgZNfJRkAyZy5pNQF5Y8=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=SDtmhTSuRrLIi0rBu2TtRfajchoprAs5Y921ThZLf60QXQWj6C62Z5d3CntC9fB8Y ez/6QuDAttYFRjncVb18h5leoNYSIKF36l4hIHnk0J88KgCvWwFD6tjAuTSGcS67fq KgxpwbYrlF0bYZJyz4sRLqrY0/AWc5OOOR41hFO7tBxRgfaBOG50spbTS16HvvZISB OfOpaj5w6vLOhL2ndpQwatDM2xZvXdeHDQAL4mzNzU7krdAzhVE8HgMv+kAuZNBseT btlWIBr5CH4FAUjEDGuNNOxcV4COjwF9Y3PB43j2h8/q5b8xTUiyCSq23x7nMrHLK1 O5SZLzArGhTxw== To: Jeff Johnson , Pavel Skripkin , ath9k-devel@qca.qualcomm.com, kvalo@kernel.org, davem@davemloft.net, kuba@kernel.org, linville@tuxdriver.com Cc: linux-wireless@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v3 2/2] ath9k: htc: clean up *STAT_* macros In-Reply-To: <258ac12b-9ca3-9b24-30df-148f9df51582@quicinc.com> References: <80962aae265995d1cdb724f5362c556d494c7566.1644265120.git.paskripkin@gmail.com> <28c83b99b8fea0115ad7fbda7cc93a86468ec50d.1644265120.git.paskripkin@gmail.com> <258ac12b-9ca3-9b24-30df-148f9df51582@quicinc.com> Date: Tue, 08 Feb 2022 16:32:13 +0100 X-Clacks-Overhead: GNU Terry Pratchett Message-ID: <87ee4d9xxe.fsf@toke.dk> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Jeff Johnson writes: > On 2/7/2022 12:24 PM, Pavel Skripkin wrote: >> I've changed *STAT_* macros a bit in previous patch and I seems like >> they become really unreadable. Align these macros definitions to make >> code cleaner. >> >> Also fixed following checkpatch warning >> >> ERROR: Macros with complex values should be enclosed in parentheses >> >> Signed-off-by: Pavel Skripkin >> --- >> >> Changes since v2: >> - My send-email script forgot, that mailing lists exist. >> Added back all related lists >> - Fixed checkpatch warning >> >> Changes since v1: >> - Added this patch >> >> --- >> drivers/net/wireless/ath/ath9k/htc.h | 16 ++++++++-------- >> 1 file changed, 8 insertions(+), 8 deletions(-) >> >> diff --git a/drivers/net/wireless/ath/ath9k/htc.h b/drivers/net/wireless/ath/ath9k/htc.h >> index 141642e5e00d..b4755e21a501 100644 >> --- a/drivers/net/wireless/ath/ath9k/htc.h >> +++ b/drivers/net/wireless/ath/ath9k/htc.h >> @@ -327,14 +327,14 @@ static inline struct ath9k_htc_tx_ctl *HTC_SKB_CB(struct sk_buff *skb) >> } >> >> #ifdef CONFIG_ATH9K_HTC_DEBUGFS >> -#define __STAT_SAVE(expr) (hif_dev->htc_handle->drv_priv ? (expr) : 0) >> -#define TX_STAT_INC(c) __STAT_SAVE(hif_dev->htc_handle->drv_priv->debug.tx_stats.c++) >> -#define TX_STAT_ADD(c, a) __STAT_SAVE(hif_dev->htc_handle->drv_priv->debug.tx_stats.c += a) >> -#define RX_STAT_INC(c) __STAT_SAVE(hif_dev->htc_handle->drv_priv->debug.skbrx_stats.c++) >> -#define RX_STAT_ADD(c, a) __STAT_SAVE(hif_dev->htc_handle->drv_priv->debug.skbrx_stats.c += a) >> -#define CAB_STAT_INC priv->debug.tx_stats.cab_queued++ >> - >> -#define TX_QSTAT_INC(q) (priv->debug.tx_stats.queue_stats[q]++) >> +#define __STAT_SAVE(expr) (hif_dev->htc_handle->drv_priv ? (expr) : 0) >> +#define TX_STAT_INC(c) __STAT_SAVE(hif_dev->htc_handle->drv_priv->debug.tx_stats.c++) >> +#define TX_STAT_ADD(c, a) __STAT_SAVE(hif_dev->htc_handle->drv_priv->debug.tx_stats.c += a) >> +#define RX_STAT_INC(c) __STAT_SAVE(hif_dev->htc_handle->drv_priv->debug.skbrx_stats.c++) >> +#define RX_STAT_ADD(c, a) __STAT_SAVE(hif_dev->htc_handle->drv_priv->debug.skbrx_stats.c += a) >> +#define CAB_STAT_INC (priv->debug.tx_stats.cab_queued++) >> + >> +#define TX_QSTAT_INC(q) (priv->debug.tx_stats.queue_stats[q]++) >> >> void ath9k_htc_err_stat_rx(struct ath9k_htc_priv *priv, >> struct ath_rx_status *rs); > > It seems that these macros (both the original and the new) aren't > following the guidance from the Coding Style which tells us under > "Things to avoid when using macros" that we should avoid "macros that > depend on having a local variable with a magic name". Wouldn't these > macros be "better" is they included the hif_dev/priv as arguments rather > than being "magic"? Hmm, yeah, that's a good point; looks like the non-HTC ath9k stats macros have already been converted to take the container as a parameter, so taking this opportunity to fix these macros is not a bad idea. While we're at it, let's switch to the do{} while(0) syntax the other macros are using instead of that weird usage of ?:. And there's not really any reason for the duplication between ADD/INC either. So I'm thinking something like: #define __STAT_SAVE(_priv, _member, _n) do { if (_priv) (_priv)->_member += (_n); } while(0) #define TX_STAT_ADD(_priv, _c, _a) __STAT_SAVE(_priv, debug.tx_stats._c, _a) #define TX_STAT_INC(_priv, _c) TX_STAT_ADD(_priv, _c, 1) [... etc ...] -Toke