From a9997bd1fd57cf3985398b8eb5fcb76d16657036 Mon Sep 17 00:00:00 2001 From: Erick Archer Date: Sat, 6 Apr 2024 16:23:35 +0200 Subject: [PATCH] [PATCH 43/44] 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 [1] Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2] Signed-off-by: Erick Archer Link: https://lore.kernel.org/r/AS8PR02MB7237E2900247571C9CB84C678B022@AS8PR02MB7237.eurprd02.prod.outlook.com Reviewed-by: Long Li Reviewed-by: Justin Stitt Signed-off-by: Leon Romanovsky (cherry picked from commit bfec4e18f94351d2ff9073c4bffcc6f37bfa3e0b) Signed-off-by: Bastian Blank Gbp-Pq: Topic features/all/ethernet-microsoft Gbp-Pq: Name 0043-net-mana-Add-flex-array-to-struct-mana_cfg_rx_steer_.patch --- include/net/mana/mana.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/net/mana/mana.h b/include/net/mana/mana.h index 83e61d6eb9f..1239915f72d 100644 --- a/include/net/mana/mana.h +++ b/include/net/mana/mana.h @@ -669,6 +669,7 @@ struct mana_cfg_rx_steer_req_v2 { u8 hashkey[MANA_HASH_KEY_SIZE]; u8 cqe_coalescing_enable; u8 reserved2[7]; + mana_handle_t indir_tab[]; }; /* HW DATA */ struct mana_cfg_rx_steer_resp { -- 2.30.2