From: Jason Gunthorpe Date: Mon, 25 May 2026 16:48:00 +0000 (-0300) Subject: Merge tag 'v7.1-rc5' into rdma.git for-next X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=e312f0ff9e180e8ebfdab2419898e82cf5408944;p=thirdparty%2Flinux.git Merge tag 'v7.1-rc5' into rdma.git for-next For dependencies in the following patches Resolve conflicts, use the goto labels from the rc tag. * tag 'v7.1-rc5': (1526 commits) Signed-off-by: Jason Gunthorpe --- e312f0ff9e180e8ebfdab2419898e82cf5408944 diff --cc drivers/infiniband/hw/hns/hns_roce_srq.c index 00552a08f21ae,8b94cbdfa54df..4a54394f96bef --- a/drivers/infiniband/hw/hns/hns_roce_srq.c +++ b/drivers/infiniband/hw/hns/hns_roce_srq.c @@@ -473,15 -477,13 +477,11 @@@ int hns_roce_create_srq(struct ib_srq * if (udata) { resp.cap_flags = srq->cap_flags; resp.srqn = srq->srqn; - if (ib_copy_to_udata(udata, &resp, - min(udata->outlen, sizeof(resp)))) { - ret = -EFAULT; + ret = ib_respond_udata(udata, resp); + if (ret) goto err_srqc; - } } - srq->event = hns_roce_ib_srq_event; - refcount_set(&srq->refcount, 1); - init_completion(&srq->free); - return 0; err_srqc: diff --cc drivers/infiniband/hw/mana/qp.c index c50a1eafee58c,0fbcf449c134b..39d9cdcc5df45 --- a/drivers/infiniband/hw/mana/qp.c +++ b/drivers/infiniband/hw/mana/qp.c @@@ -210,9 -212,13 +212,9 @@@ static int mana_ib_create_qp_rss(struc if (ret) goto fail; - ret = ib_copy_to_udata(udata, &resp, sizeof(resp)); - if (ret) { - ibdev_dbg(&mdev->ib_dev, - "Failed to copy to udata create rss-qp, %d\n", - ret); + ret = ib_respond_udata(udata, resp); + if (ret) - goto fail; + goto err_disable_vport_rx; - } kfree(mana_ind_table); diff --cc drivers/infiniband/hw/mlx4/srq.c index 0b4df4f48ca14,767840736d583..dd868f9b893d7 --- a/drivers/infiniband/hw/mlx4/srq.c +++ b/drivers/infiniband/hw/mlx4/srq.c @@@ -191,15 -191,11 +191,15 @@@ int mlx4_ib_create_srq(struct ib_srq *i srq->msrq.event = mlx4_ib_srq_event; srq->ibsrq.ext.xrc.srq_num = srq->msrq.srqn; - if (udata) - if (ib_copy_to_udata(udata, &srq->msrq.srqn, sizeof (__u32))) { - err = -EFAULT; + if (udata) { + struct mlx4_ib_create_srq_resp uresp = { + .srqn = srq->msrq.srqn + }; + + err = ib_respond_udata(udata, uresp); + if (err) - goto err_wrid; + goto err_srq; - } + } init_attr->attr.max_wr = srq->msrq.max - 1; diff --cc drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c index 69a89f609ada9,c7c2b41060e52..b9c3202b9545e --- a/drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c +++ b/drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c @@@ -320,11 -320,11 +320,11 @@@ int pvrdma_alloc_ucontext(struct ib_uco /* copy back to user */ uresp.qp_tab_size = vdev->dsr->caps.max_qp; - ret = ib_copy_to_udata(udata, &uresp, sizeof(uresp)); + ret = ib_respond_udata(udata, uresp); if (ret) { - pvrdma_uar_free(vdev, &context->uar); + /* pvrdma_dealloc_ucontext() also frees the UAR */ pvrdma_dealloc_ucontext(&context->ibucontext); - return -EFAULT; + return ret; } return 0;