summaryrefslogtreecommitdiffstats
path: root/drivers/greybus/greybus_trace.h
diff options
context:
space:
mode:
authorErick Archer <erick.archer@outlook.com>2024-04-06 16:23:36 +0200
committerLeon Romanovsky <leon@kernel.org>2024-04-11 13:46:47 +0300
commit29b8e13a8b4c95ce629c8d4c84682f29af6f6bb5 (patch)
tree1e229f2fa34c0bcd69b62193e3ac8f64cc4fa4fb /drivers/greybus/greybus_trace.h
parentbfec4e18f94351d2ff9073c4bffcc6f37bfa3e0b (diff)
downloadlinux-29b8e13a8b4c95ce629c8d4c84682f29af6f6bb5.tar.gz
linux-29b8e13a8b4c95ce629c8d4c84682f29af6f6bb5.tar.bz2
linux-29b8e13a8b4c95ce629c8d4c84682f29af6f6bb5.zip
RDMA/mana_ib: 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 [1][2]. As the "req" variable is a pointer to "struct mana_cfg_rx_steer_req_v2" and this structure ends in a flexible array: struct mana_cfg_rx_steer_req_v2 { [...] mana_handle_t indir_tab[] __counted_by(num_indir_entries); }; the preferred way in the kernel is to use the struct_size() helper to do the arithmetic instead of the calculation "size + size * count" in the kzalloc() function. Moreover, use the "offsetof" helper to get the indirect table offset instead of the "sizeof" operator and avoid the open-coded arithmetic in pointers using the new flex member. This new structure member also allow us to remove the "req_indir_tab" variable since it is no longer needed. This way, the code is more readable and safer. This code was detected with the help of Coccinelle, and audited and modified manually. Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1] Link: https://github.com/KSPP/linux/issues/160 [2] Signed-off-by: Erick Archer <erick.archer@outlook.com> Link: https://lore.kernel.org/r/AS8PR02MB72375EB06EE1A84A67BE722E8B022@AS8PR02MB7237.eurprd02.prod.outlook.com Reviewed-by: Long Li <longli@microsoft.com> Reviewed-by: Justin Stitt <justinstitt@google.com> Signed-off-by: Leon Romanovsky <leon@kernel.org>
Diffstat (limited to 'drivers/greybus/greybus_trace.h')
0 files changed, 0 insertions, 0 deletions