From patchwork Mon Jul 17 12:55:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 121291 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp1102935vqt; Mon, 17 Jul 2023 06:13:35 -0700 (PDT) X-Google-Smtp-Source: APBJJlEkf+3TDd64vWvrVpcgh/HPi1+sC1sEsHEMhYkXTooNtg6FvtuNG1cd4izOT+Z15RII/sXY X-Received: by 2002:a05:6a20:748d:b0:12e:c041:b652 with SMTP id p13-20020a056a20748d00b0012ec041b652mr14533627pzd.40.1689599614974; Mon, 17 Jul 2023 06:13:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689599614; cv=none; d=google.com; s=arc-20160816; b=GV5C28OBNl/KWPtxWmpLOB3+3FN2Kg6DFZ3DNYHTVQUrFpKVb9wAw+r9gEvq/Si81L xm5F8emSCDz4hZTdFcIv094IQOxvKnG/KiKLBfI7md64PWoM0igTs6lQ/3wV3QGoGUpR IYHx8D02iaw7V982mWRpTri5EPNScmrjymrEbyirUsjFUqgpxxyhRZNDh9V6XwO13GZe EaGA18WrD218iUBSFweswfUNwgztALGPT93bEWwFT8JNsPtV2sDKrOX2n4OfZAsp+T5g Ev/QbxoIa6K6+TuifHmfKg9OWnpLXO8jCbqaLUlAaK44N5ROK0Zh+GpV8G0jTP5W7vcV 2Wrw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=l8R6lNRK1TWCK1AKG93F9HdbW29WXER0ueAedRqGnYY=; fh=3i3ag3K+kPptRr3trkXUOV6odvT248PYlCwk0hkTRbk=; b=zk2x2vt9PDOpgIPHn87xw+6ZVUMr6n6bDfBs0+Ji010zEDmwWiBFFQseKucrteukkh adiKqHDZZBVpsIfdKos3qIt+VWolUCF9VrYtvN75m7z+Aj+kEcl3WKj4cUZjU940gD9j 21V0VFZk9zx+c8bUWGndljOJT7N9BpFuOsLl2YykVSpWCAJsmXKbCEQR9yyEmStUANhI iN0fz9zKu0bgzUxki0pzJ4WVpbbYaDY5B5yZSPpduBJWoA3cOEoidM4BlPmZ9ZzbDLXw h/u38JavY527P3Sm/+zDaEwoqxux/qJ2yt9Zp9Hhgu4NgQJxMOcE95ZmMPX08c/dgGVP s+ig== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=CRlxjRW3; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id j16-20020a63e750000000b0055dcb8ea00fsi5796178pgk.268.2023.07.17.06.13.21; Mon, 17 Jul 2023 06:13:34 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=CRlxjRW3; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229895AbjGQMze (ORCPT + 99 others); Mon, 17 Jul 2023 08:55:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36112 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229790AbjGQMz1 (ORCPT ); Mon, 17 Jul 2023 08:55:27 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2A7A7E4C; Mon, 17 Jul 2023 05:55:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1689598526; x=1721134526; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=/GbUJlxD6B4ZMSBm1ruFiwzehTQGXiEYVbSNTGBn/Ao=; b=CRlxjRW3T6GtHZn0QYyfdWzvN1TseGEP+hJizju8ySbE+5aiVqIPomKJ kdaEdq9La9thKblQqcKNzfY5tKjSe+JNVKKfmtpp1RcegvNqeW0FfSwD+ yo8GOUoN/JRPlPgRAV8JrDyJVL1qdePft1+RQL7ykRdsnQp0wsmarJRrR 2Im0Xm5xdIO4NVGeEK9UFXAHxxmcrxmmk6TstUdtHqWwfUl2gGAHHddtS JBEWlNGuWBzre/l4UX5YimdHzOGCZNLv9H+ju60iIZWEKYu7zLB/dhF1e AlI3EA7NXlOecFzmbBAscuno6T4AC9SADYRp2a7QrQuqWuVeMxWlGCu3z w==; X-IronPort-AV: E=McAfee;i="6600,9927,10774"; a="452295038" X-IronPort-AV: E=Sophos;i="6.01,211,1684825200"; d="scan'208";a="452295038" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Jul 2023 05:55:24 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10774"; a="752886765" X-IronPort-AV: E=Sophos;i="6.01,211,1684825200"; d="scan'208";a="752886765" Received: from black.fi.intel.com ([10.237.72.28]) by orsmga008.jf.intel.com with ESMTP; 17 Jul 2023 05:55:17 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id D070624F; Mon, 17 Jul 2023 15:55:23 +0300 (EEST) From: Andy Shevchenko To: Andy Shevchenko , Shuah Khan , David Gow , Daniel Latypov , "Steven Rostedt (Google)" , Bjorn Helgaas , linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, kunit-dev@googlegroups.com, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, linux-trace-kernel@vger.kernel.org Cc: Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" , Brendan Higgins , Mark Rutland , Lorenzo Pieralisi , Sudeep Holla , Masami Hiramatsu , Andrew Morton Subject: [PATCH v3 1/4] kernel.h: Split out COUNT_ARGS() and CONCATENATE() to args.h Date: Mon, 17 Jul 2023 15:55:18 +0300 Message-Id: <20230717125521.43176-2-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.40.0.1.gaa8946217a0b In-Reply-To: <20230717125521.43176-1-andriy.shevchenko@linux.intel.com> References: <20230717125521.43176-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham 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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771673605659225097 X-GMAIL-MSGID: 1771673605659225097 kernel.h is being used as a dump for all kinds of stuff for a long time. The COUNT_ARGS() and CONCATENATE() macros may be used in some places without need of the full kernel.h dependency train with it. Here is the attempt on cleaning it up by splitting out these macros(). While at it, include new header where it's being used. Signed-off-by: Andy Shevchenko Acked-by: Steven Rostedt (Google) --- include/kunit/test.h | 1 + include/linux/args.h | 28 ++++++++++++++++++++++++++++ include/linux/kernel.h | 7 ------- include/linux/pci.h | 2 +- include/trace/bpf_probe.h | 2 ++ 5 files changed, 32 insertions(+), 8 deletions(-) create mode 100644 include/linux/args.h diff --git a/include/kunit/test.h b/include/kunit/test.h index 23120d50499e..107c81431634 100644 --- a/include/kunit/test.h +++ b/include/kunit/test.h @@ -12,6 +12,7 @@ #include #include +#include #include #include #include diff --git a/include/linux/args.h b/include/linux/args.h new file mode 100644 index 000000000000..8ff60a54eb7d --- /dev/null +++ b/include/linux/args.h @@ -0,0 +1,28 @@ +/* SPDX-License-Identifier: GPL-2.0 */ + +#ifndef _LINUX_ARGS_H +#define _LINUX_ARGS_H + +/* + * How do these macros work? + * + * In __COUNT_ARGS() _0 to _12 are just placeholders from the start + * in order to make sure _n is positioned over the correct number + * from 12 to 0 (depending on X, which is a variadic argument list). + * They serve no purpose other than occupying a position. Since each + * macro parameter must have a distinct identifier, those identifiers + * are as good as any. + * + * In COUNT_ARGS() we use actual integers, so __COUNT_ARGS() returns + * that as _n. + */ + +/* This counts to 12. Any more, it will return 13th argument. */ +#define __COUNT_ARGS(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _n, X...) _n +#define COUNT_ARGS(X...) __COUNT_ARGS(, ##X, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0) + +/* Concatenate two parameters, but allow them to be expanded beforehand. */ +#define __CONCAT(a, b) a ## b +#define CONCATENATE(a, b) __CONCAT(a, b) + +#endif /* _LINUX_ARGS_H */ diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 0b00e1aef33d..15d9496db169 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h @@ -419,13 +419,6 @@ ftrace_vprintk(const char *fmt, va_list ap) static inline void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) { } #endif /* CONFIG_TRACING */ -/* This counts to 12. Any more, it will return 13th argument. */ -#define __COUNT_ARGS(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _n, X...) _n -#define COUNT_ARGS(X...) __COUNT_ARGS(, ##X, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0) - -#define __CONCAT(a, b) a ## b -#define CONCATENATE(a, b) __CONCAT(a, b) - /* Rebuild everything on CONFIG_FTRACE_MCOUNT_RECORD */ #ifdef CONFIG_FTRACE_MCOUNT_RECORD # define REBUILD_DUE_TO_FTRACE_MCOUNT_RECORD diff --git a/include/linux/pci.h b/include/linux/pci.h index 0ff7500772e6..eeb2e6f6130f 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -23,7 +23,7 @@ #ifndef LINUX_PCI_H #define LINUX_PCI_H - +#include #include #include diff --git a/include/trace/bpf_probe.h b/include/trace/bpf_probe.h index 1f7fc1fc590c..e609cd7da47e 100644 --- a/include/trace/bpf_probe.h +++ b/include/trace/bpf_probe.h @@ -12,6 +12,8 @@ #undef __perf_task #define __perf_task(t) (t) +#include + /* cast any integer, pointer, or small struct to u64 */ #define UINTTYPE(size) \ __typeof__(__builtin_choose_expr(size == 1, (u8)1, \ From patchwork Mon Jul 17 12:55:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 121288 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp1102499vqt; Mon, 17 Jul 2023 06:12:58 -0700 (PDT) X-Google-Smtp-Source: APBJJlGtICWihXjUeZ1Pk+B3Zm49pmJ7pO5zOPaRGvDms9PbcvQj5ZAwMc+TtmfmRFKUcT7REvdg X-Received: by 2002:a17:902:c407:b0:1b8:1be2:3938 with SMTP id k7-20020a170902c40700b001b81be23938mr13596171plk.5.1689599578236; Mon, 17 Jul 2023 06:12:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689599578; cv=none; d=google.com; s=arc-20160816; b=z05dwnf8ZzXz9Hh4+dfpgaC7kRMhquf6Dcte4xtx3/dT2kmKLKbss+woeKUFzQ3KK3 LvxUkumKuHHJzJx6H+N10RZJrZnVa7jzMHheJIf4w4aD2mX40MfykiG/zDhGApXY/WGu AFPPAEBbNe+91KVaCVD+0uiasVEMkybcl5tnUfJENFvuSYASvDucFWoRy0LijjhsaIbH oXXc9fp3MPuCYSbVVDL3j5cILha1l0aye3tAGm1N6hXLksCRO33X6E23NnehUS6LI2Bx uiP18C07AiHjj8uuYcG6e/8ITN8xuPMQ58XW0/Tcu+5AFU5tFonsTlIISpuxDrbLUdsV Us1g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=mA7H5lazrYggWHjDSH2+KZOVLMThSynpl96+eBz69BQ=; fh=3i3ag3K+kPptRr3trkXUOV6odvT248PYlCwk0hkTRbk=; b=y/7eqXz2NzaJcYPvTus7HLGNIBLD5xYdprslji17P4571IItF699+VZhXp2EnIy4Vu p3hntn+mMhXSWzZesGKL63BSRph/o3Mxe3Yx/S7MsRdmfG4CIIKcrhj5eYreNivA4YSn 698AdzDuXyeMaspeuJ0om+yYLbW7S1LdW2tkEqBQkMS6UT7Vcwwm1ZSp+yWItgOEd2j7 NJ9JWyXrkMuXWy8jBg3tUf/k6xdzfIMBzvhORCrps3QOD7I4w/l5Hu3AGWXGsIcb1+aU TFPKGRuDttbKOfQeRi2g2ePtVbXTaiifIaUWVY0tci/KDMSHS813FvtYhqh7l/HBUzI8 Gzvw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="A/8xH1md"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id kx14-20020a170902f94e00b001b8b48a5e81si11059417plb.314.2023.07.17.06.12.43; Mon, 17 Jul 2023 06:12:58 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="A/8xH1md"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229379AbjGQMzn (ORCPT + 99 others); Mon, 17 Jul 2023 08:55:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36122 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230147AbjGQMz1 (ORCPT ); Mon, 17 Jul 2023 08:55:27 -0400 Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BE5501B0; Mon, 17 Jul 2023 05:55:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1689598526; x=1721134526; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=VqCLuF6+Bx4Auyc0wAAAKOAjCrnRB30KAZm7eJddByA=; b=A/8xH1mduUSXiRwXaJutZJN9Nrdf/MDIfnUkkpC5UbjYNzOkPu9vdlrn +4MZt4zoICdX8XLTiAuHOOn4ei1eJsXs7/Ly2WsJoeznJQuEn/nH9dnyC uUtewIaQB1SDfJmkMH++j30ffJI9oEi6mHBkvILr3CqqeAuLIi1yruhYO 3dLDTCWrbXDadGk6vmCMBFlWRW0eP4q0TawuFhw0xXMtdMuUR4g63YjPT oqWjQwGsONNuq/RV8RIXmUFMzBBOAE03w2Wr5UHQQN6almP5v0oVEYApQ vreW83qepjMu6SDDgZVtGu3BVtMKw9tS4WgX6lfNtAnv7gxCq/FHhGrnJ g==; X-IronPort-AV: E=McAfee;i="6600,9927,10774"; a="429680675" X-IronPort-AV: E=Sophos;i="6.01,211,1684825200"; d="scan'208";a="429680675" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Jul 2023 05:55:24 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10774"; a="793234537" X-IronPort-AV: E=Sophos;i="6.01,211,1684825200"; d="scan'208";a="793234537" Received: from black.fi.intel.com ([10.237.72.28]) by fmsmga004.fm.intel.com with ESMTP; 17 Jul 2023 05:55:17 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id DC6B0370; Mon, 17 Jul 2023 15:55:23 +0300 (EEST) From: Andy Shevchenko To: Andy Shevchenko , Shuah Khan , David Gow , Daniel Latypov , "Steven Rostedt (Google)" , Bjorn Helgaas , linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, kunit-dev@googlegroups.com, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, linux-trace-kernel@vger.kernel.org Cc: Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" , Brendan Higgins , Mark Rutland , Lorenzo Pieralisi , Sudeep Holla , Masami Hiramatsu , Andrew Morton Subject: [PATCH v3 2/4] x86/asm: Replace custom COUNT_ARGS() & CONCATENATE() implementations Date: Mon, 17 Jul 2023 15:55:19 +0300 Message-Id: <20230717125521.43176-3-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.40.0.1.gaa8946217a0b In-Reply-To: <20230717125521.43176-1-andriy.shevchenko@linux.intel.com> References: <20230717125521.43176-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham 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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771673567275098406 X-GMAIL-MSGID: 1771673567275098406 Replace custom implementation of the macros from args.h. Signed-off-by: Andy Shevchenko --- arch/x86/include/asm/rmwcc.h | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/arch/x86/include/asm/rmwcc.h b/arch/x86/include/asm/rmwcc.h index 7fa611216417..4b081e0d3306 100644 --- a/arch/x86/include/asm/rmwcc.h +++ b/arch/x86/include/asm/rmwcc.h @@ -2,12 +2,7 @@ #ifndef _ASM_X86_RMWcc #define _ASM_X86_RMWcc -/* This counts to 12. Any more, it will return 13th argument. */ -#define __RMWcc_ARGS(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _n, X...) _n -#define RMWcc_ARGS(X...) __RMWcc_ARGS(, ##X, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0) - -#define __RMWcc_CONCAT(a, b) a ## b -#define RMWcc_CONCAT(a, b) __RMWcc_CONCAT(a, b) +#include #define __CLOBBERS_MEM(clb...) "memory", ## clb @@ -48,7 +43,7 @@ cc_label: c = true; \ #define GEN_UNARY_RMWcc_3(op, var, cc) \ GEN_UNARY_RMWcc_4(op, var, cc, "%[var]") -#define GEN_UNARY_RMWcc(X...) RMWcc_CONCAT(GEN_UNARY_RMWcc_, RMWcc_ARGS(X))(X) +#define GEN_UNARY_RMWcc(X...) CONCATENATE(GEN_UNARY_RMWcc_, COUNT_ARGS(X))(X) #define GEN_BINARY_RMWcc_6(op, var, cc, vcon, _val, arg0) \ __GEN_RMWcc(op " %[val], " arg0, var, cc, \ @@ -57,7 +52,7 @@ cc_label: c = true; \ #define GEN_BINARY_RMWcc_5(op, var, cc, vcon, val) \ GEN_BINARY_RMWcc_6(op, var, cc, vcon, val, "%[var]") -#define GEN_BINARY_RMWcc(X...) RMWcc_CONCAT(GEN_BINARY_RMWcc_, RMWcc_ARGS(X))(X) +#define GEN_BINARY_RMWcc(X...) CONCATENATE(GEN_BINARY_RMWcc_, COUNT_ARGS(X))(X) #define GEN_UNARY_SUFFIXED_RMWcc(op, suffix, var, cc, clobbers...) \ __GEN_RMWcc(op " %[var]\n\t" suffix, var, cc, \ From patchwork Mon Jul 17 12:55:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 121276 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp1091648vqt; Mon, 17 Jul 2023 05:58:01 -0700 (PDT) X-Google-Smtp-Source: APBJJlHLSOBdyZWEF4VXvcJ8P+VMm4y4vab/kITVPkN7PiM8rS1pQN/tjRm7MXGM12fOcI+wms2C X-Received: by 2002:a05:6a00:2d29:b0:67a:a906:9edb with SMTP id fa41-20020a056a002d2900b0067aa9069edbmr12878790pfb.30.1689598681070; Mon, 17 Jul 2023 05:58:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689598681; cv=none; d=google.com; s=arc-20160816; b=CE11DHh9ieNnnHWAtDrdmre5FzqBOVZ/e/kBVpqW8MGyIAL4dmyoDcJzlY3CNDT5bx 7Z/LZNuR4tg+QLFfBXbnDI5rhKOo44juXirc36U+uKRv58EFJdBV8jwS9eO6MFOGqr7x u6Z1uftK0jRDwsZhQpEu8tpKTz1IUdddRJ84UHgd05DiKyaXIq2+/Luyk+ims4+OZAqS KUEfyIzw29LEwEzoCc5zgecJnodUqP3bcenGa9pnE5sOHHVU3lW+cESXwaWxuwZawLvY ONuUSu1SJ/dmsDgQAfmaLt4zWU127Z0rpmhLqG1wHZOv69xMt9ONz81bD6RjJUS6Z9ve YhGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=X7zqWcedBYj3sRJPDN4AsEGzQO5m5c1Mu1MalcRGjFY=; fh=3i3ag3K+kPptRr3trkXUOV6odvT248PYlCwk0hkTRbk=; b=mhxD+tWHDwDBaH1FlgRaYSO9q04KuuUcLx8rVHaFB/bNkAAPrph+0f1sZMzVI/OtzB RaUScI1MGHPWa8zmtUQmZFCdEBwEovgMY1RV9AqHKfDedVdgkoCtru236i5Zj0B4YzTO rEG9abFiFe8Aiy8CVkuVcplUc9AauvBNwHSL0y2JsVzs+eBCqVgEGWWR/3JD31rh13z8 8jL7pZ9l7up+Iw8HOnANyEDIeouRsNFrBxHxnir0p+0kQvpI1sui1XdABfTfqFiI5MWC l7zjqQT9CSOxQZIZzKdFsmOt2QnWIb+QZiPnxqZXlb9XLgRdbj2zpgeC8iGdc/kwfvuN 8m4A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=PeIVtbi5; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id dw11-20020a056a00368b00b00682a0e45b59si6796465pfb.85.2023.07.17.05.57.47; Mon, 17 Jul 2023 05:58:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=PeIVtbi5; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230268AbjGQMzj (ORCPT + 99 others); Mon, 17 Jul 2023 08:55:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36124 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230097AbjGQMz1 (ORCPT ); Mon, 17 Jul 2023 08:55:27 -0400 Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 01736E47; Mon, 17 Jul 2023 05:55:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1689598527; x=1721134527; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=TFjSGVzAb16V95A9zQhmH/l3kdP7s0g4O6C6hLY90VQ=; b=PeIVtbi5B63FMyemJI+BPCTjLzEHfhfsgf7c22qIQO5Ji5vYGS7+41RP BXud/9DHpujTHk1E/eTqDrv8qIk1kWu3lGhvZ3DxBOE7i0Oyazpiv0zsR /o6nQ5y5bx9m8P4eZI0igHXLafmqwyrkOh7CbTSkc+yfMUsO9ypqnUKdM QM0I54YPwY9xbb0hcdr6GL8dOMQ915d3QtgNhmDaGB9Ux4FtBVvH2yZlt h8s9ZVHyfXaiHQ9BpKNF0HJt1iuEDuvo4gqMmgmJNuK9D8lNmOlm3g49H zPg2jfMQL9f2e9XSYVxqgOQ3CPHFUf9Fl3ZkClOOK5vpU9Zy7RQJxheJb w==; X-IronPort-AV: E=McAfee;i="6600,9927,10774"; a="429680689" X-IronPort-AV: E=Sophos;i="6.01,211,1684825200"; d="scan'208";a="429680689" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Jul 2023 05:55:25 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10774"; a="793234538" X-IronPort-AV: E=Sophos;i="6.01,211,1684825200"; d="scan'208";a="793234538" Received: from black.fi.intel.com ([10.237.72.28]) by fmsmga004.fm.intel.com with ESMTP; 17 Jul 2023 05:55:17 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id E84D5516; Mon, 17 Jul 2023 15:55:23 +0300 (EEST) From: Andy Shevchenko To: Andy Shevchenko , Shuah Khan , David Gow , Daniel Latypov , "Steven Rostedt (Google)" , Bjorn Helgaas , linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, kunit-dev@googlegroups.com, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, linux-trace-kernel@vger.kernel.org Cc: Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" , Brendan Higgins , Mark Rutland , Lorenzo Pieralisi , Sudeep Holla , Masami Hiramatsu , Andrew Morton Subject: [PATCH v3 3/4] arm64: smccc: Replace custom COUNT_ARGS() & CONCATENATE() implementations Date: Mon, 17 Jul 2023 15:55:20 +0300 Message-Id: <20230717125521.43176-4-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.40.0.1.gaa8946217a0b In-Reply-To: <20230717125521.43176-1-andriy.shevchenko@linux.intel.com> References: <20230717125521.43176-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham 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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771672626433491920 X-GMAIL-MSGID: 1771672626433491920 Replace custom implementation of the macros from args.h. Signed-off-by: Andy Shevchenko --- include/linux/arm-smccc.h | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/include/linux/arm-smccc.h b/include/linux/arm-smccc.h index f196c19f8e55..2865b14c2bba 100644 --- a/include/linux/arm-smccc.h +++ b/include/linux/arm-smccc.h @@ -5,6 +5,7 @@ #ifndef __LINUX_ARM_SMCCC_H #define __LINUX_ARM_SMCCC_H +#include #include #include @@ -413,11 +414,6 @@ asmlinkage void __arm_smccc_hvc(unsigned long a0, unsigned long a1, #endif -#define ___count_args(_0, _1, _2, _3, _4, _5, _6, _7, _8, x, ...) x - -#define __count_args(...) \ - ___count_args(__VA_ARGS__, 7, 6, 5, 4, 3, 2, 1, 0) - #define __constraint_read_0 "r" (arg0) #define __constraint_read_1 __constraint_read_0, "r" (arg1) #define __constraint_read_2 __constraint_read_1, "r" (arg2) @@ -475,14 +471,6 @@ asmlinkage void __arm_smccc_hvc(unsigned long a0, unsigned long a1, __declare_arg_6(a0, a1, a2, a3, a4, a5, a6, res); \ register typeof(a7) arg7 asm("r7") = __a7 -#define ___declare_args(count, ...) __declare_arg_ ## count(__VA_ARGS__) -#define __declare_args(count, ...) ___declare_args(count, __VA_ARGS__) - -#define ___constraints(count) \ - : __constraint_read_ ## count \ - : smccc_sve_clobbers "memory" -#define __constraints(count) ___constraints(count) - /* * We have an output list that is not necessarily used, and GCC feels * entitled to optimise the whole sequence away. "volatile" is what @@ -494,11 +482,13 @@ asmlinkage void __arm_smccc_hvc(unsigned long a0, unsigned long a1, register unsigned long r1 asm("r1"); \ register unsigned long r2 asm("r2"); \ register unsigned long r3 asm("r3"); \ - __declare_args(__count_args(__VA_ARGS__), __VA_ARGS__); \ + CONCATENATE(__declare_arg_, COUNT_ARGS(__VA_ARGS__)); \ asm volatile(SMCCC_SVE_CHECK \ inst "\n" : \ "=r" (r0), "=r" (r1), "=r" (r2), "=r" (r3) \ - __constraints(__count_args(__VA_ARGS__))); \ + : CONCATENATE(__constraint_read_, \ + COUNT_ARGS(__VA_ARGS__)) \ + : smccc_sve_clobbers "memory"); \ if (___res) \ *___res = (typeof(*___res)){r0, r1, r2, r3}; \ } while (0) @@ -542,8 +532,11 @@ asmlinkage void __arm_smccc_hvc(unsigned long a0, unsigned long a1, */ #define __fail_smccc_1_1(...) \ do { \ - __declare_args(__count_args(__VA_ARGS__), __VA_ARGS__); \ - asm ("" : __constraints(__count_args(__VA_ARGS__))); \ + CONCATENATE(__declare_arg_, COUNT_ARGS(__VA_ARGS__)); \ + asm ("" : \ + : CONCATENATE(__constraint_read_, \ + COUNT_ARGS(__VA_ARGS__)) \ + : smccc_sve_clobbers "memory"); \ if (___res) \ ___res->a0 = SMCCC_RET_NOT_SUPPORTED; \ } while (0) From patchwork Mon Jul 17 12:55:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 121282 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp1102088vqt; Mon, 17 Jul 2023 06:12:26 -0700 (PDT) X-Google-Smtp-Source: APBJJlG/4pdd1UlgEwO6wO72oRtSbAbDeXYtqIj8nv4C57wjC0UeiAn8i0/jqcQZCvFlSdv+iAWk X-Received: by 2002:a05:6a20:258c:b0:133:83b5:c3cd with SMTP id k12-20020a056a20258c00b0013383b5c3cdmr14303329pzd.53.1689599546187; Mon, 17 Jul 2023 06:12:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689599546; cv=none; d=google.com; s=arc-20160816; b=VVz0/V3kQqauMFcqUmPwoQzrlJBrt9dIZnwk7glaUdkqMUc0g9TbvXQyH1HFuUCw3F YC74cAAStph95qOkt8yPl7ejk8XfCkXONK1O0hPNW+x+Fs5bBrT+2fepGjC+QcdTO7Ej Ym1+TTwWQL0+2e72W2XMaYggg3iPcPdaafJhie5RzVUIVyFulnG/A+4Uh6bJyP3z3wVm qxVlJCDCOMgB+k72aSfXrDFNw08irFBcPETkjbPfnyyYgZC8EG+0XRHaXTbvrYTJ5Utm yZz8urUbFPLe/EYlAuBsl42yc8q5iTRQ8wcu3v1iCWtgk8iJxgac8CNzjFjixmXYbRlK VS4A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=5V3jyoP3vJZN03vgQjwvcAqr5TWCg03jX/C8Vtx+e0U=; fh=3i3ag3K+kPptRr3trkXUOV6odvT248PYlCwk0hkTRbk=; b=yWVSJkXxl3Az0WyciGyd1l1uOMVu4XZnbJfeTSKdK0SSddyLF5eUNR+okSkKOA4CiE ijeLqqGkUwxEd10zkaQlYwsfHIRGwdeBOTcsHo/IyKJlhpnJdAtAyGFWmcwqlvwqJgkz yjECQ6mC2YCLtKPFp5qiJST3lhmeakKcRQE3w6GsEIt73lMkbR4B2LDwSPMubCyk7vKS +eE3/6XtuM3gTWOpbz/sVZtW0yPyMKyDcG1RZU8nT4G9WKHB5a9McjOyH0LYh14R1W6s JoFHtSM/JjMRjbnjtOmUkaclM0vaY5+vC38VpcuY+EPEHbZ5XKTn3bMmRK+A05nhfgXB kR1g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=cNekgUbg; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id e9-20020a636909000000b0055337ca9ce9si10914899pgc.248.2023.07.17.06.12.12; Mon, 17 Jul 2023 06:12:26 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=cNekgUbg; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229725AbjGQMz1 (ORCPT + 99 others); Mon, 17 Jul 2023 08:55:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36094 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229774AbjGQMz0 (ORCPT ); Mon, 17 Jul 2023 08:55:26 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C6F96E47; Mon, 17 Jul 2023 05:55:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1689598524; x=1721134524; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=MK2n2OSkVqVYu9YHHQNwvJQ+yMJ1cHclPzK02uREhtk=; b=cNekgUbg7L2cr9vERT4MGchD/T8Vd6IO86JnMSJdZuof3GLyvZjGMHuy X1FhTleXcH+DOMgSA3nUV25/iZhZtAeB+XjEVvjDl6t7K5L/xmDCd0a/t 7M/j1p4QlTqrkoinhz5UQh7zkKoAB0FO97DXhbP1ZsXjF6S1kpmzjeWfv oMX4kcsGBtD69dp4tVlRBVsyCsRk/0gtANa8h/fq2ecKyOZVr9MfEwrgP vPeVG/D2GFcAFVEwggmjy4sBUlaR+2GgKsUOvYhS5CNN4+S0gIqdCMnNX LUuH9hdaOQEIAxbt2ClMcLRULfuvrD2DG6inS5I37rWbABHuMW4Tbwp3E A==; X-IronPort-AV: E=McAfee;i="6600,9927,10774"; a="452295022" X-IronPort-AV: E=Sophos;i="6.01,211,1684825200"; d="scan'208";a="452295022" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Jul 2023 05:55:23 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10774"; a="752886763" X-IronPort-AV: E=Sophos;i="6.01,211,1684825200"; d="scan'208";a="752886763" Received: from black.fi.intel.com ([10.237.72.28]) by orsmga008.jf.intel.com with ESMTP; 17 Jul 2023 05:55:17 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id 000055FC; Mon, 17 Jul 2023 15:55:23 +0300 (EEST) From: Andy Shevchenko To: Andy Shevchenko , Shuah Khan , David Gow , Daniel Latypov , "Steven Rostedt (Google)" , Bjorn Helgaas , linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, kunit-dev@googlegroups.com, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, linux-trace-kernel@vger.kernel.org Cc: Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" , Brendan Higgins , Mark Rutland , Lorenzo Pieralisi , Sudeep Holla , Masami Hiramatsu , Andrew Morton Subject: [PATCH v3 4/4] genetlink: Replace custom CONCATENATE() implementation Date: Mon, 17 Jul 2023 15:55:21 +0300 Message-Id: <20230717125521.43176-5-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.40.0.1.gaa8946217a0b In-Reply-To: <20230717125521.43176-1-andriy.shevchenko@linux.intel.com> References: <20230717125521.43176-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham 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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771673533555036586 X-GMAIL-MSGID: 1771673533555036586 Replace custom implementation of the macros from args.h. Signed-off-by: Andy Shevchenko --- include/linux/genl_magic_func.h | 27 ++++++++++++++------------- include/linux/genl_magic_struct.h | 8 +++----- 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/include/linux/genl_magic_func.h b/include/linux/genl_magic_func.h index 2984b0cb24b1..d4da060b7532 100644 --- a/include/linux/genl_magic_func.h +++ b/include/linux/genl_magic_func.h @@ -2,6 +2,7 @@ #ifndef GENL_MAGIC_FUNC_H #define GENL_MAGIC_FUNC_H +#include #include #include @@ -23,7 +24,7 @@ #define GENL_struct(tag_name, tag_number, s_name, s_fields) \ [tag_name] = { .type = NLA_NESTED }, -static struct nla_policy CONCAT_(GENL_MAGIC_FAMILY, _tla_nl_policy)[] = { +static struct nla_policy CONCATENATE(GENL_MAGIC_FAMILY, _tla_nl_policy)[] = { #include GENL_MAGIC_INCLUDE_FILE }; @@ -209,7 +210,7 @@ static int s_name ## _from_attrs_for_change(struct s_name *s, \ * Magic: define op number to op name mapping {{{1 * {{{2 */ -static const char *CONCAT_(GENL_MAGIC_FAMILY, _genl_cmd_to_str)(__u8 cmd) +static const char *CONCATENATE(GENL_MAGIC_FAMILY, _genl_cmd_to_str)(__u8 cmd) { switch (cmd) { #undef GENL_op @@ -235,7 +236,7 @@ static const char *CONCAT_(GENL_MAGIC_FAMILY, _genl_cmd_to_str)(__u8 cmd) .cmd = op_name, \ }, -#define ZZZ_genl_ops CONCAT_(GENL_MAGIC_FAMILY, _genl_ops) +#define ZZZ_genl_ops CONCATENATE(GENL_MAGIC_FAMILY, _genl_ops) static struct genl_ops ZZZ_genl_ops[] __read_mostly = { #include GENL_MAGIC_INCLUDE_FILE }; @@ -248,32 +249,32 @@ static struct genl_ops ZZZ_genl_ops[] __read_mostly = { * and provide register/unregister functions. * {{{2 */ -#define ZZZ_genl_family CONCAT_(GENL_MAGIC_FAMILY, _genl_family) +#define ZZZ_genl_family CONCATENATE(GENL_MAGIC_FAMILY, _genl_family) static struct genl_family ZZZ_genl_family; /* * Magic: define multicast groups * Magic: define multicast group registration helper */ -#define ZZZ_genl_mcgrps CONCAT_(GENL_MAGIC_FAMILY, _genl_mcgrps) +#define ZZZ_genl_mcgrps CONCATENATE(GENL_MAGIC_FAMILY, _genl_mcgrps) static const struct genl_multicast_group ZZZ_genl_mcgrps[] = { #undef GENL_mc_group #define GENL_mc_group(group) { .name = #group, }, #include GENL_MAGIC_INCLUDE_FILE }; -enum CONCAT_(GENL_MAGIC_FAMILY, group_ids) { +enum CONCATENATE(GENL_MAGIC_FAMILY, group_ids) { #undef GENL_mc_group -#define GENL_mc_group(group) CONCAT_(GENL_MAGIC_FAMILY, _group_ ## group), +#define GENL_mc_group(group) CONCATENATE(GENL_MAGIC_FAMILY, _group_ ## group), #include GENL_MAGIC_INCLUDE_FILE }; #undef GENL_mc_group #define GENL_mc_group(group) \ -static int CONCAT_(GENL_MAGIC_FAMILY, _genl_multicast_ ## group)( \ +static int CONCATENATE(GENL_MAGIC_FAMILY, _genl_multicast_ ## group)( \ struct sk_buff *skb, gfp_t flags) \ { \ unsigned int group_id = \ - CONCAT_(GENL_MAGIC_FAMILY, _group_ ## group); \ + CONCATENATE(GENL_MAGIC_FAMILY, _group_ ## group); \ return genlmsg_multicast(&ZZZ_genl_family, skb, 0, \ group_id, flags); \ } @@ -289,8 +290,8 @@ static struct genl_family ZZZ_genl_family __ro_after_init = { #ifdef GENL_MAGIC_FAMILY_HDRSZ .hdrsize = NLA_ALIGN(GENL_MAGIC_FAMILY_HDRSZ), #endif - .maxattr = ARRAY_SIZE(CONCAT_(GENL_MAGIC_FAMILY, _tla_nl_policy))-1, - .policy = CONCAT_(GENL_MAGIC_FAMILY, _tla_nl_policy), + .maxattr = ARRAY_SIZE(CONCATENATE(GENL_MAGIC_FAMILY, _tla_nl_policy))-1, + .policy = CONCATENATE(GENL_MAGIC_FAMILY, _tla_nl_policy), .ops = ZZZ_genl_ops, .n_ops = ARRAY_SIZE(ZZZ_genl_ops), .mcgrps = ZZZ_genl_mcgrps, @@ -299,12 +300,12 @@ static struct genl_family ZZZ_genl_family __ro_after_init = { .module = THIS_MODULE, }; -int CONCAT_(GENL_MAGIC_FAMILY, _genl_register)(void) +int CONCATENATE(GENL_MAGIC_FAMILY, _genl_register)(void) { return genl_register_family(&ZZZ_genl_family); } -void CONCAT_(GENL_MAGIC_FAMILY, _genl_unregister)(void) +void CONCATENATE(GENL_MAGIC_FAMILY, _genl_unregister)(void) { genl_unregister_family(&ZZZ_genl_family); } diff --git a/include/linux/genl_magic_struct.h b/include/linux/genl_magic_struct.h index f81d48987528..a419d93789ff 100644 --- a/include/linux/genl_magic_struct.h +++ b/include/linux/genl_magic_struct.h @@ -14,14 +14,12 @@ # error "you need to define GENL_MAGIC_INCLUDE_FILE before inclusion" #endif +#include #include #include -#define CONCAT__(a,b) a ## b -#define CONCAT_(a,b) CONCAT__(a,b) - -extern int CONCAT_(GENL_MAGIC_FAMILY, _genl_register)(void); -extern void CONCAT_(GENL_MAGIC_FAMILY, _genl_unregister)(void); +extern int CONCATENATE(GENL_MAGIC_FAMILY, _genl_register)(void); +extern void CONCATENATE(GENL_MAGIC_FAMILY, _genl_unregister)(void); /* * Extension of genl attribute validation policies {{{2