Also forgot to add to commit message:
Coverity issue: 381674

> -----Original Message-----
> From: Alex Vesker <va...@nvidia.com>
> Sent: Thursday, November 3, 2022 2:52 PM
> To: Alex Vesker <va...@nvidia.com>; Slava Ovsiienko
> <viachesl...@nvidia.com>; NBU-Contact-Thomas Monjalon (EXTERNAL)
> <tho...@monjalon.net>; Suanming Mou <suanmi...@nvidia.com>;
> Matan Azrad <ma...@nvidia.com>
> Cc: dev@dpdk.org; Ori Kam <or...@nvidia.com>
> Subject: [PATCH] net/mlx5/hws: fix possible negative return on sq create
> 
> The sysconf call can return a negative value (-1) on failure this will lead to
> posix_memalign to fail. This is not a realistic case which was found by the
> static checkers.
> 
> Fixes: 3eb7488 ("net/mlx5/hws: add send layer")
> Signed-off-by: Alex Vesker <va...@nvidia.com>
> Reviewed-by: Erez Shitrit <ere...@nvidia.com>
> ---
>  drivers/net/mlx5/hws/mlx5dr_send.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/mlx5/hws/mlx5dr_send.c
> b/drivers/net/mlx5/hws/mlx5dr_send.c
> index 26904a9040..1e9953a38f 100644
> --- a/drivers/net/mlx5/hws/mlx5dr_send.c
> +++ b/drivers/net/mlx5/hws/mlx5dr_send.c
> @@ -524,6 +524,7 @@ static int mlx5dr_send_ring_open_sq(struct
> mlx5dr_context *ctx,
>       size_t sq_log_buf_sz;
>       size_t buf_aligned;
>       size_t sq_buf_sz;
> +     size_t page_size;
>       size_t buf_sz;
>       int err;
> 
> @@ -532,8 +533,9 @@ static int mlx5dr_send_ring_open_sq(struct
> mlx5dr_context *ctx,
>       sq_buf_sz = 1 << (sq_log_buf_sz +
> log2above(MLX5_SEND_WQE_BB));
>       sq->reg_addr = queue->uar->reg_addr;
> 
> -     buf_aligned = align(sq_buf_sz, sysconf(_SC_PAGESIZE));
> -     err = posix_memalign((void **)&sq->buf, sysconf(_SC_PAGESIZE),
> buf_aligned);
> +     page_size = sysconf(_SC_PAGESIZE);
> +     buf_aligned = align(sq_buf_sz, page_size);
> +     err = posix_memalign((void **)&sq->buf, page_size, buf_aligned);
>       if (err) {
>               rte_errno = ENOMEM;
>               return err;
> --
> 2.18.1

Reply via email to