Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp1597155imm; Wed, 26 Sep 2018 22:35:36 -0700 (PDT) X-Google-Smtp-Source: ACcGV62l1tGg3sf1EZUHkaNCh0hkL9patBjCEqh+Sptsa8geuZPelx6EBrYXjLNZEcv5q/i+naND X-Received: by 2002:a17:902:7001:: with SMTP id y1-v6mr9164522plk.259.1538026536439; Wed, 26 Sep 2018 22:35:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538026536; cv=none; d=google.com; s=arc-20160816; b=cspQhVe1EP75pomSt4r0umk5y6sywAMgrfzATTvOkon4AeKg5CLiW8ase2KAa8OzEs ONA7qU1uDzMKyQ9Pzh6HLvt0WcJrEnBgnUXWEHYGZsNkCCYmy9iW31bwzbYSfeZ5htId qDpd+X2pkfKSWAVnYj45mtgrdwWZxjy149uH0pj6uI6wNGecQ3/V/Co+dUgdJZJLVzjK OhtEHOPfGvCbIWll2U5mwDx9uuFnI6DykDg1DJeeLTVQzAiEKsd9LM5EjfqlHY6z983l 3cda9XnXJ/1y3e44shfLR5U5aeQXLlcUxPY3tdY427V54IXv3ZZoPM+eyW5Bx4DXHWtY z5dA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-transfer-encoding:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=9ihyaWkwYVGAI4CBCJ/K1tFaNvlcXqGNov625MJA9PY=; b=BoiypxLC6GiLQ4Wid28HcxsZhmLH82vnYXkeTDZuDh4cYChnvn6wBty8KKZNuNh7wc 4nT3RZtEVn1F3vxTXD6if7SNInpYfE5byJ/TCohTsprxXJIIAVkGo8lSU7/R0bORBbu+ 1iOb8kvsfWfwGFwY4LGB2KVymeMyg5VdVeVJylkrjjThRgjCXV+nFmfs/QIGRv7lKT1s 7dTmWTMmnkkk2hCaBRg04isQqRci0D3AJT0ySh5KX2B6yChx0TlNLsjhzuK3XPEion6K 46LhOhD8SwwGtlhmAmiS+5/8qdZDBG0z3Aw4UaXfHqQ1J49dkGyAyDBhikwz/sdc7Qcv Q2MQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=R0Wj2nL3; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h4-v6si1071296pgc.429.2018.09.26.22.35.20; Wed, 26 Sep 2018 22:35:36 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=R0Wj2nL3; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727008AbeI0Lvl (ORCPT + 99 others); Thu, 27 Sep 2018 07:51:41 -0400 Received: from mail-wr1-f65.google.com ([209.85.221.65]:37087 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726469AbeI0Lvl (ORCPT ); Thu, 27 Sep 2018 07:51:41 -0400 Received: by mail-wr1-f65.google.com with SMTP id u12-v6so1120938wrr.4 for ; Wed, 26 Sep 2018 22:35:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=9ihyaWkwYVGAI4CBCJ/K1tFaNvlcXqGNov625MJA9PY=; b=R0Wj2nL3NbXkcNRVP6blE51KpAkSRYfUR0Ns5m3DdI8HSG9LWccKrmx420/QUUthwj af1DNnb9HOK+sz5Ex/hN+3bgDRHZGm2P9YyvEB4wA9irezGTQgzFLJu7sUVMCDI1yVhq jXKBvOp46mEwqrWU4641BDhQYw0dvNbEW6G625fSMD4pt7EUK6N+dCjNIaJb6MB0KPAe /UItK5EFnBnLh/wOVv9UxtLSrL563vaJhlJ+5A3XwAXEJarQUi0eBYMpFU/0oAEj21DP +8lWqgNkGLFXjky+3nJxQXmv2UijUOyWyOl7AwDs998MFI1f4Wx60ScO/sO/bxSHt7qX qnSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to:user-agent; bh=9ihyaWkwYVGAI4CBCJ/K1tFaNvlcXqGNov625MJA9PY=; b=HpOjYiUAAzedUJHSJSo6Ou62UnS4CbjcIHdkH+unwRmWbsTA5jWr1NXIYw/f27keNM gHMe/cY3kXDIxPDIsaohaKN66u92wUOjRkUJOFGUgQn9i6QZ2fAJLvRuxvnvi7qbpMqG ZthO2vLGAr67fd6Bkb3L4KPC16DIihw0wMGhXRvL5Z0ZXU0+VuM+RgrIlSIuCCF3owHw 2+SrYw2oVebSXxe7Csk/P6Cn5rnSLgbNkmF2OIueWLfaOlTjBBM2TnvxBHMd41JC5pr5 Ed8RwN77awySm3XHpwLAqGPvCDNGdmwlvGEtqJ8gOACXfjLBgO1uQdlRyckn37Gs5Vs0 5qdA== X-Gm-Message-State: ABuFfoh6Tit9wIQbRKIhLPBERqScXWH7nv0endtP09DB10Hn6IIF8tMR 0AWnKDBcfw+l7JQpEuRzv9ARRA== X-Received: by 2002:adf:f1ce:: with SMTP id z14-v6mr7178700wro.214.1538026512111; Wed, 26 Sep 2018 22:35:12 -0700 (PDT) Received: from Red ([2a01:cb1d:147:7200:2e56:dcff:fed2:c6d6]) by smtp.googlemail.com with ESMTPSA id n8-v6sm774419wrw.31.2018.09.26.22.35.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 26 Sep 2018 22:35:11 -0700 (PDT) Date: Thu, 27 Sep 2018 07:35:08 +0200 From: LABBE Corentin To: Christophe LEROY Cc: Gilles.Muller@lip6.fr, Julia.Lawall@lip6.fr, agust@denx.de, airlied@linux.ie, alexandre.torgue@st.com, alistair@popple.id.au, benh@kernel.crashing.org, carlo@caione.org, davem@davemloft.net, galak@kernel.crashing.org, joabreu@synopsys.com, khilman@baylibre.com, maxime.ripard@bootlin.com, michal.lkml@markovi.net, mpe@ellerman.id.au, mporter@kernel.crashing.org, narmstrong@baylibre.com, nicolas.palix@imag.fr, oss@buserror.net, paulus@samba.org, peppe.cavallaro@st.com, tj@kernel.org, vitb@kernel.crashing.org, wens@csie.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-ide@vger.kernel.org, linux-amlogic@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, cocci@systeme.lip6.fr, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v2 2/7] include: add setbits32/clrbits32/clrsetbits32/setbits64/clrbits64/clrsetbits64 in linux/setbits.h Message-ID: <20180927053508.GB27637@Red> References: <1537815856-31728-1-git-send-email-clabbe@baylibre.com> <1537815856-31728-3-git-send-email-clabbe@baylibre.com> <4a63152f-9eca-f7d9-8fe6-59caaab33666@c-s.fr> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <4a63152f-9eca-f7d9-8fe6-59caaab33666@c-s.fr> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Sep 25, 2018 at 07:05:00AM +0200, Christophe LEROY wrote: > > > Le 24/09/2018 ? 21:04, Corentin Labbe a ?crit?: > > This patch adds setbits32/clrbits32/clrsetbits32 and > > setbits64/clrbits64/clrsetbits64 in linux/setbits.h header. > > Fix the patch subject and description. > > > > > Signed-off-by: Corentin Labbe > > --- > > include/linux/setbits.h | 88 +++++++++++++++++++++++++++++++++++++++++++++++++ > > 1 file changed, 88 insertions(+) > > create mode 100644 include/linux/setbits.h > > > > diff --git a/include/linux/setbits.h b/include/linux/setbits.h > > new file mode 100644 > > index 000000000000..6e7e257134ae > > --- /dev/null > > +++ b/include/linux/setbits.h > > @@ -0,0 +1,88 @@ > > +/* SPDX-License-Identifier: GPL-2.0 */ > > +#ifndef __LINUX_SETBITS_H > > +#define __LINUX_SETBITS_H > > + > > +#include > > + > > +#define __setbits(readfunction, writefunction, addr, set) \ > > + writefunction((readfunction(addr) | (set)), addr) > > You don't need so long names for parameters in a 2 lines macro (See > Linux Kernel Codying style ?4 Naming). > > A single line macro would be feasible with only 3 chars names: > > #define __setbits(rfn, wfn, addr, set) wfn((rfn(addr) | (set)), addr) > Thanks I will fix all reported problem. > > +#define __clrbits(readfunction, writefunction, addr, mask) \ > > + writefunction((readfunction(addr) & ~(mask)), addr) > > +#define __clrsetbits(readfunction, writefunction, addr, mask, set) \ > > + writefunction(((readfunction(addr) & ~(mask)) | (set)), addr) > > +#define __setclrbits(readfunction, writefunction, addr, mask, set) \ > > + writefunction(((readfunction(addr) | (set)) & ~(mask)), addr) > > + > > +#ifndef setbits_le32 > > +#define setbits_le32(addr, set) __setbits(readl, writel, addr, set) > > +#endif > > +#ifndef setbits_le32_relaxed > > +#define setbits_le32_relaxed(addr, set) __setbits(readl_relaxed, writel_relaxed, \ > > + addr, set) > > +#endif > > + > > +#ifndef clrbits_le32 > > +#define clrbits_le32(addr, mask) __clrbits(readl, writel, addr, mask) > > +#endif > > +#ifndef clrbits_le32_relaxed > > +#define clrbits_le32_relaxed(addr, mask) __clrbits(readl_relaxed, writel_relaxed, \ > > + addr, mask) > > +#endif > > + > > +#ifndef clrsetbits_le32 > > +#define clrsetbits_le32(addr, mask, set) __clrsetbits(readl, writel, addr, mask, set) > > +#endif > > +#ifndef clrsetbits_le32_relaxed > > +#define clrsetbits_le32_relaxed(addr, mask, set) __clrsetbits(readl_relaxed, \ > > + writel_relaxed, \ > > + addr, mask, set) > > +#endif > > + > > +#ifndef setclrbits_le32 > > +#define setclrbits_le32(addr, mask, set) __setclrbits(readl, writel, addr, mask, set) > > +#endif > > +#ifndef setclrbits_le32_relaxed > > +#define setclrbits_le32_relaxed(addr, mask, set) __setclrbits(readl_relaxed, \ > > + writel_relaxed, \ > > + addr, mask, set) > > +#endif > > + > > +/* We cannot use CONFIG_64BIT as some x86 drivers use non-atomicwriteq() */ > > +#if defined(writeq) && defined(readq) > > Take care. At least Alpha Arch defines it as a static inline without > redefining it as a #define. (see arch/alpha/kernel/io.c) In fact, it does in arch/alpha/include/asm/io.h along with a gentle comment. But fixing their comment will be another interesting patch serie. Regards Corentin Labbe