> The error value returned by rte_ring_create_elem() should be positive
> integers. However, if the rte_ring_get_memsize_elem() function fails,
> a negative number is returned and is directly used as the return value.
> As a result, this will cause the external call to check the return
> value to fail(like called by rte_mempool_create()).
>
> Fixes: a182620042aa ("ring: get size in memory")
> Cc: [email protected]
>
> Reported-by: Nan Zhou <[email protected]>
> Signed-off-by: Yunjian Wang <[email protected]>
> ---
> lib/ring/rte_ring.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/ring/rte_ring.c b/lib/ring/rte_ring.c
> index f17bd966be..185f9be798 100644
> --- a/lib/ring/rte_ring.c
> +++ b/lib/ring/rte_ring.c
> @@ -267,7 +267,7 @@ rte_ring_create_elem(const char *name, unsigned int
> esize, unsigned int count,
>
> ring_size = rte_ring_get_memsize_elem(esize, count);
> if (ring_size < 0) {
> - rte_errno = ring_size;
> + rte_errno = -ring_size;
> return NULL;
> }
>
> --
Acked-by: Konstantin Ananyev <[email protected]>
> 2.27.0