On 08/04/2024 22:21, Zhu Yanjun wrote: > In the function __rxe_add_to_pool, the function xa_alloc_cyclic is > called. The return value of the function xa_alloc_cyclic is as below: > " > Return: 0 if the allocation succeeded without wrapping. 1 if the > allocation succeeded after wrapping, -ENOMEM if memory could not be > allocated or -EBUSY if there are no free entries in @limit. > " > But now the function __rxe_add_to_pool only returns -EINVAL. All the > returned error value should be returned to the caller. > make sense. > Signed-off-by: Zhu Yanjun <yanjun.zhu@xxxxxxxxx> > --- > drivers/infiniband/sw/rxe/rxe_pool.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/infiniband/sw/rxe/rxe_pool.c b/drivers/infiniband/sw/rxe/rxe_pool.c > index 6215c6de3a84..43ba0277bd7b 100644 > --- a/drivers/infiniband/sw/rxe/rxe_pool.c > +++ b/drivers/infiniband/sw/rxe/rxe_pool.c > @@ -122,8 +122,10 @@ int __rxe_add_to_pool(struct rxe_pool *pool, struct rxe_pool_elem *elem, > int err; I'd like to assign 'err' a default error code: -EINVAL Thanks Zhijian > gfp_t gfp_flags; > > - if (atomic_inc_return(&pool->num_elem) > pool->max_elem) > + if (atomic_inc_return(&pool->num_elem) > pool->max_elem) { > + err = -EINVAL; > goto err_cnt; > + } > > elem->pool = pool; > elem->obj = (u8 *)elem - pool->elem_offset; > @@ -147,7 +149,7 @@ int __rxe_add_to_pool(struct rxe_pool *pool, struct rxe_pool_elem *elem, > > err_cnt: > atomic_dec(&pool->num_elem); > - return -EINVAL; > + return err; > } > > void *rxe_pool_get_index(struct rxe_pool *pool, u32 index)