perf/x86/rapl: Prefer struct_size() over open coded arithmetic
authorErick Archer <erick.archer@gmx.com>
Sun, 17 Mar 2024 16:44:42 +0000 (17:44 +0100)
committerIngo Molnar <mingo@kernel.org>
Thu, 21 Mar 2024 19:58:43 +0000 (20:58 +0100)
commitdfbc411e0a5ea72fdd563b2c7d627e9d993d865c
tree3516c749db87166a628fcb2f48e04c0e76bf4d07
parent4ae3dc83b047d51485cce1a72be277a110d77c91
perf/x86/rapl: Prefer struct_size() over open coded arithmetic

This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows:

  https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
  https://github.com/KSPP/linux/issues/160

As the "rapl_pmus" variable is a pointer to "struct rapl_pmus" and
this structure ends in a flexible array:

  struct rapl_pmus {
[...]
struct rapl_pmu *pmus[] __counted_by(maxdie);
  };

the preferred way in the kernel is to use the struct_size() helper to
do the arithmetic instead of the calculation "size + count * size" in
the kzalloc() function.

This way, the code is more readable and safer.

Signed-off-by: Erick Archer <erick.archer@gmx.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20240317164442.6729-1-erick.archer@gmx.com
arch/x86/events/rapl.c