Re: [PATCH rdma-next] RDMA/rxe: Clean kzalloc failure paths

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 3/29/23 13:14, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@xxxxxxxxxx>
> 
> There is no need to print any debug messages after failure to
> allocate memory, because kernel will print OOM dumps anyway.
> 
> Together with removal of these messages, remove useless goto jumps.
> 
> Fixes: 5bf944f24129 ("RDMA/rxe: Add error messages")
> Reported-by: Dan Carpenter <error27@xxxxxxxxx>
> Link: https://lore.kernel.org/all/ea43486f-43dd-4054-b1d5-3a0d202be621@kili.mountain
> Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxx>
> ---
>  drivers/infiniband/sw/rxe/rxe_queue.c |  5 ++---
>  drivers/infiniband/sw/rxe/rxe_verbs.c | 23 ++++++-----------------
>  2 files changed, 8 insertions(+), 20 deletions(-)
> 
> diff --git a/drivers/infiniband/sw/rxe/rxe_queue.c b/drivers/infiniband/sw/rxe/rxe_queue.c
> index d6dbf5a0058d..9611ee191a46 100644
> --- a/drivers/infiniband/sw/rxe/rxe_queue.c
> +++ b/drivers/infiniband/sw/rxe/rxe_queue.c
> @@ -61,11 +61,11 @@ struct rxe_queue *rxe_queue_init(struct rxe_dev *rxe, int *num_elem,
>  
>  	/* num_elem == 0 is allowed, but uninteresting */
>  	if (*num_elem < 0)
> -		goto err1;
> +		return NULL;
>  
>  	q = kzalloc(sizeof(*q), GFP_KERNEL);
>  	if (!q)
> -		goto err1;
> +		return NULL;
>  
>  	q->rxe = rxe;
>  	q->type = type;
> @@ -100,7 +100,6 @@ struct rxe_queue *rxe_queue_init(struct rxe_dev *rxe, int *num_elem,
>  
>  err2:
>  	kfree(q);
> -err1:
>  	return NULL;
>  }
>  
> diff --git a/drivers/infiniband/sw/rxe/rxe_verbs.c b/drivers/infiniband/sw/rxe/rxe_verbs.c
> index 090d5bfb1e18..06f071832635 100644
> --- a/drivers/infiniband/sw/rxe/rxe_verbs.c
> +++ b/drivers/infiniband/sw/rxe/rxe_verbs.c
> @@ -1198,11 +1198,8 @@ static struct ib_mr *rxe_get_dma_mr(struct ib_pd *ibpd, int access)
>  	int err;
>  
>  	mr = kzalloc(sizeof(*mr), GFP_KERNEL);
> -	if (!mr) {
> -		err = -ENOMEM;
> -		rxe_dbg_dev(rxe, "no memory for mr");
> -		goto err_out;
> -	}
> +	if (!mr)
> +		return ERR_PTR(-ENOMEM);
>  
>  	err = rxe_add_to_pool(&rxe->mr_pool, mr);
>  	if (err) {
> @@ -1220,7 +1217,6 @@ static struct ib_mr *rxe_get_dma_mr(struct ib_pd *ibpd, int access)
>  
>  err_free:
>  	kfree(mr);
> -err_out:
>  	rxe_err_pd(pd, "returned err = %d", err);
>  	return ERR_PTR(err);
>  }
> @@ -1235,11 +1231,8 @@ static struct ib_mr *rxe_reg_user_mr(struct ib_pd *ibpd, u64 start,
>  	int err, cleanup_err;
>  
>  	mr = kzalloc(sizeof(*mr), GFP_KERNEL);
> -	if (!mr) {
> -		err = -ENOMEM;
> -		rxe_dbg_pd(pd, "no memory for mr");
> -		goto err_out;
> -	}
> +	if (!mr)
> +		return ERR_PTR(-ENOMEM);
>  
>  	err = rxe_add_to_pool(&rxe->mr_pool, mr);
>  	if (err) {
> @@ -1266,7 +1259,6 @@ static struct ib_mr *rxe_reg_user_mr(struct ib_pd *ibpd, u64 start,
>  		rxe_err_mr(mr, "cleanup failed, err = %d", cleanup_err);
>  err_free:
>  	kfree(mr);
> -err_out:
>  	rxe_err_pd(pd, "returned err = %d", err);
>  	return ERR_PTR(err);
>  }
> @@ -1287,11 +1279,8 @@ static struct ib_mr *rxe_alloc_mr(struct ib_pd *ibpd, enum ib_mr_type mr_type,
>  	}
>  
>  	mr = kzalloc(sizeof(*mr), GFP_KERNEL);
> -	if (!mr) {
> -		err = -ENOMEM;
> -		rxe_dbg_mr(mr, "no memory for mr");
> -		goto err_out;
> -	}
> +	if (!mr)
> +		return ERR_PTR(-ENOMEM);
>  
>  	err = rxe_add_to_pool(&rxe->mr_pool, mr);
>  	if (err) {

These are all fine. Thanks!
Reviewed-by:- Bob Pearson <rpearsonhpe@xxxxxxxxx>



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux