All of lore.kernel.org
 help / color / mirror / Atom feed
From: Shuah Khan <skhan@linuxfoundation.org>
To: catalin.marinas@arm.com, will@kernel.org, shuah@kernel.org,
	keescook@chromium.org, mic@digikod.net, davem@davemloft.net,
	kuba@kernel.org, peterz@infradead.org, paulmck@kernel.org,
	boqun.feng@gmail.com, akpm@linux-foundation.org
Cc: Shuah Khan <skhan@linuxfoundation.org>,
	linux-kselftest@vger.kernel.org,
	linux-security-module@vger.kernel.org, netdev@vger.kernel.org,
	linux-mm@kvack.org
Subject: [PATCH 01/12] tools: fix ARRAY_SIZE defines in tools and selftests hdrs
Date: Fri, 10 Dec 2021 10:33:11 -0700	[thread overview]
Message-ID: <30585e0f0acfb523c6f7a93e0b916ae756e0c7e7.1639156389.git.skhan@linuxfoundation.org> (raw)
In-Reply-To: <cover.1639156389.git.skhan@linuxfoundation.org>

tools/include/linux/kernel.h and kselftest_harness.h are missing
ifndef guard around ARRAY_SIZE define. Fix them to avoid duplicate
define errors during compile when another file defines it. This
problem was found when compiling selftests that include a header
with ARRAY_SIZE define.

ARRAY_SIZE is defined in several selftests. There are about 25+
duplicate defines in various selftests source and header files.
Add ARRAY_SIZE to kselftest.h in preparation for removing duplicate
ARRAY_SIZE defines from individual test files.

Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
---
 tools/include/linux/kernel.h                | 2 ++
 tools/testing/selftests/kselftest.h         | 4 ++++
 tools/testing/selftests/kselftest_harness.h | 2 ++
 3 files changed, 8 insertions(+)

diff --git a/tools/include/linux/kernel.h b/tools/include/linux/kernel.h
index 3e8df500cfbd..9701e8307db0 100644
--- a/tools/include/linux/kernel.h
+++ b/tools/include/linux/kernel.h
@@ -92,7 +92,9 @@ int vscnprintf(char *buf, size_t size, const char *fmt, va_list args);
 int scnprintf(char * buf, size_t size, const char * fmt, ...);
 int scnprintf_pad(char * buf, size_t size, const char * fmt, ...);
 
+#ifndef ARRAY_SIZE
 #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
+#endif
 
 #define current_gfp_context(k) 0
 #define synchronize_rcu()
diff --git a/tools/testing/selftests/kselftest.h b/tools/testing/selftests/kselftest.h
index 8d50483fe204..f1180987492c 100644
--- a/tools/testing/selftests/kselftest.h
+++ b/tools/testing/selftests/kselftest.h
@@ -48,6 +48,10 @@
 #include <stdarg.h>
 #include <stdio.h>
 
+#ifndef ARRAY_SIZE
+#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
+#endif
+
 /* define kselftest exit codes */
 #define KSFT_PASS  0
 #define KSFT_FAIL  1
diff --git a/tools/testing/selftests/kselftest_harness.h b/tools/testing/selftests/kselftest_harness.h
index ae0f0f33b2a6..75164e23f036 100644
--- a/tools/testing/selftests/kselftest_harness.h
+++ b/tools/testing/selftests/kselftest_harness.h
@@ -671,7 +671,9 @@
 #define EXPECT_STRNE(expected, seen) \
 	__EXPECT_STR(expected, seen, !=, 0)
 
+#ifndef ARRAY_SIZE
 #define ARRAY_SIZE(a)	(sizeof(a) / sizeof(a[0]))
+#endif
 
 /* Support an optional handler after and ASSERT_* or EXPECT_*.  The approach is
  * not thread-safe, but it should be fine in most sane test scenarios.
-- 
2.32.0


  reply	other threads:[~2021-12-10 17:33 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-10 17:33 [PATCH 00/12] selftests: Remove ARRAY_SIZE duplicate defines Shuah Khan
2021-12-10 17:33 ` Shuah Khan [this message]
2021-12-13 20:38   ` [PATCH 01/12] tools: fix ARRAY_SIZE defines in tools and selftests hdrs Kees Cook
2021-12-10 17:33 ` [PATCH 02/12] selftests/arm64: remove ARRAY_SIZE define from vec-syscfg.c Shuah Khan
2021-12-13 15:45   ` Will Deacon
2021-12-10 17:33 ` [PATCH 03/12] selftests/cgroup: remove ARRAY_SIZE define from cgroup_util.h Shuah Khan
2021-12-10 17:33 ` [PATCH 04/12] selftests/core: remove ARRAY_SIZE define from close_range_test.c Shuah Khan
2021-12-10 17:33 ` [PATCH 05/12] selftests/ir: remove ARRAY_SIZE define from ir_loopback.c Shuah Khan
2021-12-10 17:33 ` [PATCH 06/12] selftests/landlock: remove ARRAY_SIZE define from common.h Shuah Khan
2021-12-13 15:36   ` Mickaël Salaün
2021-12-10 17:33 ` [PATCH 07/12] selftests/net: remove ARRAY_SIZE define from individual tests Shuah Khan
2021-12-11  3:03   ` Jakub Kicinski
2021-12-10 17:33 ` [PATCH 08/12] selftests/rseq: " Shuah Khan
2021-12-10 17:33 ` [PATCH 09/12] selftests/seccomp: remove ARRAY_SIZE define from seccomp_benchmark Shuah Khan
2021-12-13 20:38   ` Kees Cook
2021-12-10 17:33 ` [PATCH 10/12] selftests/sparc64: remove ARRAY_SIZE define from adi-test Shuah Khan
2021-12-10 17:33 ` [PATCH 11/12] selftests/timens: remove ARRAY_SIZE define from individual tests Shuah Khan
2021-12-10 17:33 ` [PATCH 12/12] selftests/vm: " Shuah Khan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=30585e0f0acfb523c6f7a93e0b916ae756e0c7e7.1639156389.git.skhan@linuxfoundation.org \
    --to=skhan@linuxfoundation.org \
    --cc=akpm@linux-foundation.org \
    --cc=boqun.feng@gmail.com \
    --cc=catalin.marinas@arm.com \
    --cc=davem@davemloft.net \
    --cc=keescook@chromium.org \
    --cc=kuba@kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=mic@digikod.net \
    --cc=netdev@vger.kernel.org \
    --cc=paulmck@kernel.org \
    --cc=peterz@infradead.org \
    --cc=shuah@kernel.org \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.