Re: [PATCH] KVM: selftests: use ARRAY_SIZE

From: Paolo Bonzini
Date: Fri Nov 26 2021 - 05:33:31 EST


On 11/24/21 10:46, Greg KH wrote:
From: Changcheng Deng<deng.changcheng@xxxxxxxxxx>

Use ARRAY_SIZE instead of dividing sizeof array with sizeof an element.

Reported-by: Zeal Robot<zealci@xxxxxxxxxx>
Signed-off-by: Changcheng Deng<deng.changcheng@xxxxxxxxxx>
Your email address does not match these here, you need to provide a
signed-off-by as well.

And are you_SURE_ that you can use kernel #defines in userspace testing
code?

Dpeends on which, but ARRAY_SIZE is among those that can be used:

$ git grep '#define ARRAY_SIZE' 'tools/*.h'
tools/gpio/gpio-utils.h:#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
tools/iio/iio_utils.h:#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0]))
tools/include/linux/kernel.h:#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
tools/testing/selftests/bpf/progs/profiler.inc.h:#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0]))
tools/testing/selftests/cgroup/cgroup_util.h:#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
tools/testing/selftests/kselftest_harness.h:#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
tools/testing/selftests/landlock/common.h:#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
tools/testing/selftests/vm/pkey-helpers.h:#define ARRAY_SIZE(x) (sizeof(x) / sizeof(*(x)))
tools/virtio/linux/kernel.h:#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))

In particular, most KVM tests already include linux/kernel.h
indirectly via linux/list.h.

Paolo