]> www.infradead.org Git - users/hch/configfs.git/commit
net: mana: Add flex array to struct mana_cfg_rx_steer_req_v2
authorErick Archer <erick.archer@outlook.com>
Sat, 6 Apr 2024 14:23:35 +0000 (16:23 +0200)
committerLeon Romanovsky <leon@kernel.org>
Thu, 11 Apr 2024 10:46:47 +0000 (13:46 +0300)
commitbfec4e18f94351d2ff9073c4bffcc6f37bfa3e0b
tree4ccd0dce3ef299985ce49b141256fbd130d3e937
parent39cd87c4eb2b893354f3b850f916353f2658ae6f
net: mana: Add flex array to struct mana_cfg_rx_steer_req_v2

The "struct mana_cfg_rx_steer_req_v2" uses a dynamically sized set of
trailing elements. Specifically, it uses a "mana_handle_t" array. So,
use the preferred way in the kernel declaring a flexible array [1].

At the same time, prepare for the coming implementation by GCC and Clang
of the __counted_by attribute. Flexible array members annotated with
__counted_by can have their accesses bounds-checked at run-time via
CONFIG_UBSAN_BOUNDS (for array indexing) and CONFIG_FORTIFY_SOURCE (for
strcpy/memcpy-family functions).

This is a previous step to refactor the two consumers of this structure.

 drivers/infiniband/hw/mana/qp.c
 drivers/net/ethernet/microsoft/mana/mana_en.c

The ultimate goal is to avoid the open-coded arithmetic in the memory
allocator functions [2] using the "struct_size" macro.

Link: https://www.kernel.org/doc/html/next/process/deprecated.html#zero-length-and-one-element-arrays
Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
Signed-off-by: Erick Archer <erick.archer@outlook.com>
Link: https://lore.kernel.org/r/AS8PR02MB7237E2900247571C9CB84C678B022@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>
include/net/mana/mana.h