Re: [PATCH v2 -next] selftests/bpf: Use ARRAY_SIZE for array length

From: Tony Ambardar
Date: Mon Sep 30 2024 - 03:31:05 EST


On Sun, Sep 29, 2024 at 05:28:11PM +0800, Jiapeng Chong wrote:
> Use of macro ARRAY_SIZE to calculate array size minimizes
> the redundant code and improves code reusability.
>
> ./tools/testing/selftests/bpf/prog_tests/core_reloc_raw.c:98:34-35: WARNING: Use ARRAY_SIZE.
> ./tools/testing/selftests/bpf/prog_tests/core_reloc_raw.c:93:29-30: WARNING: Use ARRAY_SIZE.
> ./tools/testing/selftests/bpf/prog_tests/core_reloc_raw.c:101:34-35: WARNING: Use ARRAY_SIZE.
>
> Reported-by: Abaci Robot <abaci@xxxxxxxxxxxxxxxxx>
> Closes: https://bugzilla.openanolis.cn/show_bug.cgi?id=11167
> Signed-off-by: Jiapeng Chong <jiapeng.chong@xxxxxxxxxxxxxxxxx>
> ---
> Changes in v2:
> -Modify the header file "kselftest.h" to "linux/kernel.h".
>
> tools/testing/selftests/bpf/prog_tests/core_reloc_raw.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/prog_tests/core_reloc_raw.c b/tools/testing/selftests/bpf/prog_tests/core_reloc_raw.c
> index a18d3680fb16..7534014279ca 100644
> --- a/tools/testing/selftests/bpf/prog_tests/core_reloc_raw.c
> +++ b/tools/testing/selftests/bpf/prog_tests/core_reloc_raw.c
> @@ -7,6 +7,7 @@
> #include <sys/syscall.h>
> #include <bpf/libbpf.h>
> #include <bpf/btf.h>
> +#include <linux/kernel.h>

Hi Jiapeng,

I don't believe adding this header is needed, since ARRAY_SIZE is defined
in bpf_utils.h and already pulled in by test_progs.h below. Maybe try
without "#include <linux/kernel.h"> to check?

Take care,
Tony

>
> #include "test_progs.h"
> #include "test_btf.h"
> @@ -90,15 +91,15 @@ static void test_bad_local_id(void)
> attr.prog_type = BPF_TRACE_RAW_TP;
> attr.license = (__u64)"GPL";
> attr.insns = (__u64)&insns;
> - attr.insn_cnt = sizeof(insns) / sizeof(*insns);
> + attr.insn_cnt = ARRAY_SIZE(insns);
> attr.log_buf = (__u64)log;
> attr.log_size = sizeof(log);
> attr.log_level = log_level;
> attr.func_info = (__u64)funcs;
> - attr.func_info_cnt = sizeof(funcs) / sizeof(*funcs);
> + attr.func_info_cnt = ARRAY_SIZE(funcs);
> attr.func_info_rec_size = sizeof(*funcs);
> attr.core_relos = (__u64)relos;
> - attr.core_relo_cnt = sizeof(relos) / sizeof(*relos);
> + attr.core_relo_cnt = ARRAY_SIZE(relos);
> attr.core_relo_rec_size = sizeof(*relos);
> prog_fd = sys_bpf_prog_load(&attr, sizeof(attr), 1);
> saved_errno = errno;
> --
> 2.32.0.3.g01195cf9f
>