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