Re: [PATCH] net/mlx5: convert miss_list allocation to kvmalloc_array()
From: Paolo Abeni
Date: Thu Jun 04 2026 - 09:32:35 EST
On 6/1/26 9:37 PM, William Theesfeld wrote:
> dr_icm_buddy_init_ste_cache() allocates the per-buddy miss_list using
> the open-coded kvmalloc(n * sizeof(*p), ...) form. The neighbouring
> allocations in the same function already use the kvcalloc()/
> kvzalloc_objs() forms; switch this last one to kvmalloc_array() for
> consistency and for the size_mul overflow check that kvmalloc_array()
> performs.
>
> The semantics are unchanged: kvmalloc_array() returns a non-zeroed
> buffer, just like the previous kvmalloc() call. Existing callers of
> buddy->miss_list initialise each list_head before use.
>
> Signed-off-by: William Theesfeld <william@xxxxxxxxxxxxx>
> ---
> .../net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
> index 7a0a15822..fa4d24b3d 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
> @@ -239,7 +239,7 @@ static int dr_icm_buddy_init_ste_cache(struct mlx5dr_icm_buddy_mem *buddy)
> if (!buddy->hw_ste_arr)
> goto free_ste_arr;
>
> - buddy->miss_list = kvmalloc(num_of_entries * sizeof(struct list_head), GFP_KERNEL);
> + buddy->miss_list = kvmalloc_array(num_of_entries, sizeof(struct list_head), GFP_KERNEL);
> if (!buddy->miss_list)
> goto free_hw_ste_arr;
@Leon, @Tariq: the patch looks obviously correct to me, still an
explicit ack would be nice, I think.
Thanks,
Paolo