Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

RDMA/bnxt_re: Use ib_respond_empty_udata()

Like ib_is_udata_in_empty() for the request side ib_respond_empty_udata()
is called on the response side if there no response struct.

Link: https://patch.msgid.link/r/12-v3-bd56dd443069+49-bnxt_re_uapi_jgg@nvidia.com
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>

+15 -10
+15 -10
drivers/infiniband/hw/bnxt_re/ib_verbs.c
··· 709 709 &pd->qplib_pd)) 710 710 atomic_dec(&rdev->stats.res.pd_count); 711 711 } 712 - return 0; 712 + return ib_respond_empty_udata(udata); 713 713 } 714 714 715 715 int bnxt_re_alloc_pd(struct ib_pd *ibpd, struct ib_udata *udata) ··· 898 898 if (active_ahs > rdev->stats.res.ah_watermark) 899 899 rdev->stats.res.ah_watermark = active_ahs; 900 900 901 - return 0; 901 + return ib_respond_empty_udata(udata); 902 902 } 903 903 904 904 int bnxt_re_query_ah(struct ib_ah *ib_ah, struct rdma_ah_attr *ah_attr) ··· 1053 1053 if (scq_nq != rcq_nq) 1054 1054 bnxt_re_synchronize_nq(rcq_nq); 1055 1055 1056 - return 0; 1056 + return ib_respond_empty_udata(udata); 1057 1057 } 1058 1058 1059 1059 static u8 __from_ib_qp_type(enum ib_qp_type type) ··· 1869 1869 bnxt_qplib_destroy_srq(&rdev->qplib_res, qplib_srq); 1870 1870 ib_umem_release(srq->umem); 1871 1871 atomic_dec(&rdev->stats.res.srq_count); 1872 - return 0; 1872 + return ib_respond_empty_udata(udata); 1873 1873 } 1874 1874 1875 1875 static int bnxt_re_init_user_srq(struct bnxt_re_dev *rdev, ··· 2030 2030 /* On success, update the shadow */ 2031 2031 srq->srq_limit = srq_attr->srq_limit; 2032 2032 /* No need to Build and send response back to udata */ 2033 - return 0; 2033 + return ib_respond_empty_udata(udata); 2034 2034 default: 2035 2035 ibdev_err(&rdev->ibdev, 2036 2036 "Unsupported srq_attr_mask 0x%x", srq_attr_mask); ··· 2375 2375 ibdev_err(&rdev->ibdev, "Failed to modify HW QP"); 2376 2376 return rc; 2377 2377 } 2378 - if (ib_qp->qp_type == IB_QPT_GSI && rdev->gsi_ctx.gsi_sqp) 2378 + if (ib_qp->qp_type == IB_QPT_GSI && rdev->gsi_ctx.gsi_sqp) { 2379 2379 rc = bnxt_re_modify_shadow_qp(rdev, qp, qp_attr_mask); 2380 - return rc; 2380 + if (rc) 2381 + return rc; 2382 + } 2383 + return ib_respond_empty_udata(udata); 2381 2384 } 2382 2385 2383 2386 int bnxt_re_query_qp(struct ib_qp *ib_qp, struct ib_qp_attr *qp_attr, ··· 3177 3174 3178 3175 atomic_dec(&rdev->stats.res.cq_count); 3179 3176 kfree(cq->cql); 3180 - return 0; 3177 + return ib_respond_empty_udata(udata); 3181 3178 } 3182 3179 3183 3180 int bnxt_re_create_cq(struct ib_cq *ibcq, const struct ib_cq_init_attr *attr, ··· 3379 3376 cq->ib_cq.cqe = cq->resize_cqe; 3380 3377 atomic_inc(&rdev->stats.res.resize_count); 3381 3378 3382 - return 0; 3379 + return ib_respond_empty_udata(udata); 3383 3380 3384 3381 fail: 3385 3382 if (cq->resize_umem) { ··· 4132 4129 4133 4130 kfree(mr); 4134 4131 atomic_dec(&rdev->stats.res.mr_count); 4135 - return rc; 4132 + if (rc) 4133 + return rc; 4134 + return ib_respond_empty_udata(udata); 4136 4135 } 4137 4136 4138 4137 static int bnxt_re_set_page(struct ib_mr *ib_mr, u64 addr)