diff mbox series

[v1,rdma-next] RDMA/core: Use ERR_CAST to return an error-valued pointer

Message ID 20240905093445.1186581-1-yujiaoliang@vivo.com (mailing list archive)
State New
Headers show
Series [v1,rdma-next] RDMA/core: Use ERR_CAST to return an error-valued pointer | expand

Commit Message

Yu Jiaoliang Sept. 5, 2024, 9:34 a.m. UTC
Instead of directly casting and returning (void *) pointer, use ERR_CAST
to explicitly return an error-valued pointer. This makes the error handling
more explicit and improves code clarity.

Signed-off-by: Yu Jiaoliang <yujiaoliang@vivo.com>
---
 drivers/infiniband/core/mad_rmpp.c   | 2 +-
 drivers/infiniband/core/uverbs_cmd.c | 2 +-
 drivers/infiniband/core/verbs.c      | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

Comments

Leon Romanovsky Sept. 5, 2024, 11:06 a.m. UTC | #1
On Thu, Sep 05, 2024 at 05:34:40PM +0800, Yu Jiaoliang wrote:
> Instead of directly casting and returning (void *) pointer, use ERR_CAST
> to explicitly return an error-valued pointer. This makes the error handling
> more explicit and improves code clarity.
> 
> Signed-off-by: Yu Jiaoliang <yujiaoliang@vivo.com>
> ---
>  drivers/infiniband/core/mad_rmpp.c   | 2 +-
>  drivers/infiniband/core/uverbs_cmd.c | 2 +-
>  drivers/infiniband/core/verbs.c      | 2 +-
>  3 files changed, 3 insertions(+), 3 deletions(-)

I see other places in the code that could benefit from this change.
Please do it for whole drivers/infiniband and group the patches.

Thanks

> 
> diff --git a/drivers/infiniband/core/mad_rmpp.c b/drivers/infiniband/core/mad_rmpp.c
> index 8af0619a39cd..b4b10e8a6495 100644
> --- a/drivers/infiniband/core/mad_rmpp.c
> +++ b/drivers/infiniband/core/mad_rmpp.c
> @@ -158,7 +158,7 @@ static struct ib_mad_send_buf *alloc_response_msg(struct ib_mad_agent *agent,
>  	ah = ib_create_ah_from_wc(agent->qp->pd, recv_wc->wc,
>  				  recv_wc->recv_buf.grh, agent->port_num);
>  	if (IS_ERR(ah))
> -		return (void *) ah;
> +		return ERR_CAST(ah);
>  
>  	hdr_len = ib_get_mad_data_offset(recv_wc->recv_buf.mad->mad_hdr.mgmt_class);
>  	msg = ib_create_send_mad(agent, recv_wc->wc->src_qp,
> diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c
> index 1b3ea71f2c33..35a83825f6ba 100644
> --- a/drivers/infiniband/core/uverbs_cmd.c
> +++ b/drivers/infiniband/core/uverbs_cmd.c
> @@ -192,7 +192,7 @@ _ib_uverbs_lookup_comp_file(s32 fd, struct uverbs_attr_bundle *attrs)
>  					       fd, attrs);
>  
>  	if (IS_ERR(uobj))
> -		return (void *)uobj;
> +		return ERR_CAST(uobj);
>  
>  	uverbs_uobject_get(uobj);
>  	uobj_put_read(uobj);
> diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c
> index 473ee0831307..77268cce4d31 100644
> --- a/drivers/infiniband/core/verbs.c
> +++ b/drivers/infiniband/core/verbs.c
> @@ -572,7 +572,7 @@ struct ib_ah *rdma_create_ah(struct ib_pd *pd, struct rdma_ah_attr *ah_attr,
>  					   GFP_KERNEL : GFP_ATOMIC);
>  	if (IS_ERR(slave)) {
>  		rdma_unfill_sgid_attr(ah_attr, old_sgid_attr);
> -		return (void *)slave;
> +		return ERR_CAST(slave);
>  	}
>  	ah = _rdma_create_ah(pd, ah_attr, flags, NULL, slave);
>  	rdma_lag_put_ah_roce_slave(slave);
> -- 
> 2.34.1
>
diff mbox series

Patch

diff --git a/drivers/infiniband/core/mad_rmpp.c b/drivers/infiniband/core/mad_rmpp.c
index 8af0619a39cd..b4b10e8a6495 100644
--- a/drivers/infiniband/core/mad_rmpp.c
+++ b/drivers/infiniband/core/mad_rmpp.c
@@ -158,7 +158,7 @@  static struct ib_mad_send_buf *alloc_response_msg(struct ib_mad_agent *agent,
 	ah = ib_create_ah_from_wc(agent->qp->pd, recv_wc->wc,
 				  recv_wc->recv_buf.grh, agent->port_num);
 	if (IS_ERR(ah))
-		return (void *) ah;
+		return ERR_CAST(ah);
 
 	hdr_len = ib_get_mad_data_offset(recv_wc->recv_buf.mad->mad_hdr.mgmt_class);
 	msg = ib_create_send_mad(agent, recv_wc->wc->src_qp,
diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c
index 1b3ea71f2c33..35a83825f6ba 100644
--- a/drivers/infiniband/core/uverbs_cmd.c
+++ b/drivers/infiniband/core/uverbs_cmd.c
@@ -192,7 +192,7 @@  _ib_uverbs_lookup_comp_file(s32 fd, struct uverbs_attr_bundle *attrs)
 					       fd, attrs);
 
 	if (IS_ERR(uobj))
-		return (void *)uobj;
+		return ERR_CAST(uobj);
 
 	uverbs_uobject_get(uobj);
 	uobj_put_read(uobj);
diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c
index 473ee0831307..77268cce4d31 100644
--- a/drivers/infiniband/core/verbs.c
+++ b/drivers/infiniband/core/verbs.c
@@ -572,7 +572,7 @@  struct ib_ah *rdma_create_ah(struct ib_pd *pd, struct rdma_ah_attr *ah_attr,
 					   GFP_KERNEL : GFP_ATOMIC);
 	if (IS_ERR(slave)) {
 		rdma_unfill_sgid_attr(ah_attr, old_sgid_attr);
-		return (void *)slave;
+		return ERR_CAST(slave);
 	}
 	ah = _rdma_create_ah(pd, ah_attr, flags, NULL, slave);
 	rdma_lag_put_ah_roce_slave(slave);