mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 10:09:10 +02:00
RDMA: Convert drivers using min to ib_respond_udata()
Convert the pattern: ib_copy_to_udata(udata, &resp, min(sizeof(resp), udata->outlen)); Using Coccinelle: @@ identifier resp; expression udata; @@ - ib_copy_to_udata(udata, &resp, min(sizeof(resp), udata->outlen)) + ib_respond_udata(udata, resp) @@ identifier resp; expression udata; @@ - ib_copy_to_udata(udata, &resp, min(udata->outlen, sizeof(resp))) + ib_respond_udata(udata, resp) Run another pass with AI to propagate the return code correctly and remove redundant prints. Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> Signed-off-by: Leon Romanovsky <leon@kernel.org>
This commit is contained in:
parent
9ebad5c3eb
commit
a5e9f0ae62
|
|
@ -270,13 +270,9 @@ int efa_query_device(struct ib_device *ibdev,
|
|||
if (dev->neqs)
|
||||
resp.device_caps |= EFA_QUERY_DEVICE_CAPS_CQ_NOTIFICATIONS;
|
||||
|
||||
err = ib_copy_to_udata(udata, &resp,
|
||||
min(sizeof(resp), udata->outlen));
|
||||
if (err) {
|
||||
ibdev_dbg(ibdev,
|
||||
"Failed to copy udata for query_device\n");
|
||||
err = ib_respond_udata(udata, resp);
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
@ -442,13 +438,9 @@ int efa_alloc_pd(struct ib_pd *ibpd, struct ib_udata *udata)
|
|||
resp.pdn = result.pdn;
|
||||
|
||||
if (udata->outlen) {
|
||||
err = ib_copy_to_udata(udata, &resp,
|
||||
min(sizeof(resp), udata->outlen));
|
||||
if (err) {
|
||||
ibdev_dbg(&dev->ibdev,
|
||||
"Failed to copy udata for alloc_pd\n");
|
||||
err = ib_respond_udata(udata, resp);
|
||||
if (err)
|
||||
goto err_dealloc_pd;
|
||||
}
|
||||
}
|
||||
|
||||
ibdev_dbg(&dev->ibdev, "Allocated pd[%d]\n", pd->pdn);
|
||||
|
|
@ -782,14 +774,9 @@ int efa_create_qp(struct ib_qp *ibqp, struct ib_qp_init_attr *init_attr,
|
|||
qp->max_inline_data = init_attr->cap.max_inline_data;
|
||||
|
||||
if (udata->outlen) {
|
||||
err = ib_copy_to_udata(udata, &resp,
|
||||
min(sizeof(resp), udata->outlen));
|
||||
if (err) {
|
||||
ibdev_dbg(&dev->ibdev,
|
||||
"Failed to copy udata for qp[%u]\n",
|
||||
create_qp_resp.qp_num);
|
||||
err = ib_respond_udata(udata, resp);
|
||||
if (err)
|
||||
goto err_remove_mmap_entries;
|
||||
}
|
||||
}
|
||||
|
||||
ibdev_dbg(&dev->ibdev, "Created qp[%d]\n", qp->ibqp.qp_num);
|
||||
|
|
@ -1226,13 +1213,9 @@ int efa_create_user_cq(struct ib_cq *ibcq, const struct ib_cq_init_attr *attr,
|
|||
}
|
||||
|
||||
if (udata->outlen) {
|
||||
err = ib_copy_to_udata(udata, &resp,
|
||||
min(sizeof(resp), udata->outlen));
|
||||
if (err) {
|
||||
ibdev_dbg(ibdev,
|
||||
"Failed to copy udata for create_cq\n");
|
||||
err = ib_respond_udata(udata, resp);
|
||||
if (err)
|
||||
goto err_xa_erase;
|
||||
}
|
||||
}
|
||||
|
||||
ibdev_dbg(ibdev, "Created cq[%d], cq depth[%u]. dma[%pad] virt[0x%p]\n",
|
||||
|
|
@ -1935,8 +1918,7 @@ int efa_alloc_ucontext(struct ib_ucontext *ibucontext, struct ib_udata *udata)
|
|||
resp.max_tx_batch = dev->dev_attr.max_tx_batch;
|
||||
resp.min_sq_wr = dev->dev_attr.min_sq_depth;
|
||||
|
||||
err = ib_copy_to_udata(udata, &resp,
|
||||
min(sizeof(resp), udata->outlen));
|
||||
err = ib_respond_udata(udata, resp);
|
||||
if (err)
|
||||
goto err_dealloc_uar;
|
||||
|
||||
|
|
@ -2087,13 +2069,9 @@ int efa_create_ah(struct ib_ah *ibah,
|
|||
resp.efa_address_handle = result.ah;
|
||||
|
||||
if (udata->outlen) {
|
||||
err = ib_copy_to_udata(udata, &resp,
|
||||
min(sizeof(resp), udata->outlen));
|
||||
if (err) {
|
||||
ibdev_dbg(&dev->ibdev,
|
||||
"Failed to copy udata for create_ah response\n");
|
||||
err = ib_respond_udata(udata, resp);
|
||||
if (err)
|
||||
goto err_destroy_ah;
|
||||
}
|
||||
}
|
||||
ibdev_dbg(&dev->ibdev, "Created ah[%d]\n", ah->ah);
|
||||
|
||||
|
|
|
|||
|
|
@ -1990,8 +1990,7 @@ int erdma_create_cq(struct ib_cq *ibcq, const struct ib_cq_init_attr *attr,
|
|||
uresp.cq_id = cq->cqn;
|
||||
uresp.num_cqe = depth;
|
||||
|
||||
ret = ib_copy_to_udata(udata, &uresp,
|
||||
min(sizeof(uresp), udata->outlen));
|
||||
ret = ib_respond_udata(udata, uresp);
|
||||
if (ret)
|
||||
goto err_free_res;
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@
|
|||
|
||||
#include <rdma/ib_addr.h>
|
||||
#include <rdma/ib_cache.h>
|
||||
#include <rdma/uverbs_ioctl.h>
|
||||
#include "hns_roce_device.h"
|
||||
#include "hns_roce_hw_v2.h"
|
||||
|
||||
|
|
@ -112,8 +113,7 @@ int hns_roce_create_ah(struct ib_ah *ibah, struct rdma_ah_init_attr *init_attr,
|
|||
resp.priority = ah->av.sl;
|
||||
resp.tc_mode = tc_mode;
|
||||
memcpy(resp.dmac, ah_attr->roce.dmac, ETH_ALEN);
|
||||
ret = ib_copy_to_udata(udata, &resp,
|
||||
min(udata->outlen, sizeof(resp)));
|
||||
ret = ib_respond_udata(udata, resp);
|
||||
}
|
||||
|
||||
err_out:
|
||||
|
|
|
|||
|
|
@ -452,8 +452,7 @@ int hns_roce_create_cq(struct ib_cq *ib_cq, const struct ib_cq_init_attr *attr,
|
|||
|
||||
if (udata) {
|
||||
resp.cqn = hr_cq->cqn;
|
||||
ret = ib_copy_to_udata(udata, &resp,
|
||||
min(udata->outlen, sizeof(resp)));
|
||||
ret = ib_respond_udata(udata, resp);
|
||||
if (ret)
|
||||
goto err_cqc;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -477,8 +477,7 @@ static int hns_roce_alloc_ucontext(struct ib_ucontext *uctx,
|
|||
|
||||
resp.cqe_size = hr_dev->caps.cqe_sz;
|
||||
|
||||
ret = ib_copy_to_udata(udata, &resp,
|
||||
min(udata->outlen, sizeof(resp)));
|
||||
ret = ib_respond_udata(udata, resp);
|
||||
if (ret)
|
||||
goto error_fail_copy_to_udata;
|
||||
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <rdma/uverbs_ioctl.h>
|
||||
#include "hns_roce_device.h"
|
||||
|
||||
void hns_roce_init_pd_table(struct hns_roce_dev *hr_dev)
|
||||
|
|
@ -61,12 +62,9 @@ int hns_roce_alloc_pd(struct ib_pd *ibpd, struct ib_udata *udata)
|
|||
if (udata) {
|
||||
struct hns_roce_ib_alloc_pd_resp resp = {.pdn = pd->pdn};
|
||||
|
||||
ret = ib_copy_to_udata(udata, &resp,
|
||||
min(udata->outlen, sizeof(resp)));
|
||||
if (ret) {
|
||||
ret = ib_respond_udata(udata, resp);
|
||||
if (ret)
|
||||
ida_free(&pd_ida->ida, id);
|
||||
ibdev_err(ib_dev, "failed to copy to udata, ret = %d\n", ret);
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
|
|
|||
|
|
@ -1235,12 +1235,9 @@ static int hns_roce_create_qp_common(struct hns_roce_dev *hr_dev,
|
|||
|
||||
if (udata) {
|
||||
resp.cap_flags = hr_qp->en_flags;
|
||||
ret = ib_copy_to_udata(udata, &resp,
|
||||
min(udata->outlen, sizeof(resp)));
|
||||
if (ret) {
|
||||
ibdev_err(ibdev, "copy qp resp failed!\n");
|
||||
ret = ib_respond_udata(udata, resp);
|
||||
if (ret)
|
||||
goto err_flow_ctrl;
|
||||
}
|
||||
}
|
||||
|
||||
if (hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_QP_FLOW_CTRL) {
|
||||
|
|
@ -1487,11 +1484,7 @@ int hns_roce_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr,
|
|||
if (udata && udata->outlen) {
|
||||
resp.tc_mode = hr_qp->tc_mode;
|
||||
resp.priority = hr_qp->sl;
|
||||
ret = ib_copy_to_udata(udata, &resp,
|
||||
min(udata->outlen, sizeof(resp)));
|
||||
if (ret)
|
||||
ibdev_err_ratelimited(&hr_dev->ib_dev,
|
||||
"failed to copy modify qp resp.\n");
|
||||
ret = ib_respond_udata(udata, resp);
|
||||
}
|
||||
|
||||
out:
|
||||
|
|
|
|||
|
|
@ -473,11 +473,9 @@ int hns_roce_create_srq(struct ib_srq *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;
|
||||
|
|
|
|||
|
|
@ -325,9 +325,9 @@ static int irdma_alloc_ucontext(struct ib_ucontext *uctx,
|
|||
uresp.max_pds = iwdev->rf->sc_dev.hw_attrs.max_hw_pds;
|
||||
uresp.wq_size = iwdev->rf->sc_dev.hw_attrs.max_qp_wr * 2;
|
||||
uresp.kernel_ver = req.userspace_ver;
|
||||
if (ib_copy_to_udata(udata, &uresp,
|
||||
min(sizeof(uresp), udata->outlen)))
|
||||
return -EFAULT;
|
||||
ret = ib_respond_udata(udata, uresp);
|
||||
if (ret)
|
||||
return ret;
|
||||
} else {
|
||||
u64 bar_off = (uintptr_t)iwdev->rf->sc_dev.hw_regs[IRDMA_DB_ADDR_OFFSET];
|
||||
|
||||
|
|
@ -354,10 +354,10 @@ static int irdma_alloc_ucontext(struct ib_ucontext *uctx,
|
|||
uresp.comp_mask |= IRDMA_ALLOC_UCTX_MIN_HW_WQ_SIZE;
|
||||
uresp.max_hw_srq_quanta = uk_attrs->max_hw_srq_quanta;
|
||||
uresp.comp_mask |= IRDMA_ALLOC_UCTX_MAX_HW_SRQ_QUANTA;
|
||||
if (ib_copy_to_udata(udata, &uresp,
|
||||
min(sizeof(uresp), udata->outlen))) {
|
||||
ret = ib_respond_udata(udata, uresp);
|
||||
if (ret) {
|
||||
rdma_user_mmap_entry_remove(ucontext->db_mmap_entry);
|
||||
return -EFAULT;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -420,11 +420,9 @@ static int irdma_alloc_pd(struct ib_pd *pd, struct ib_udata *udata)
|
|||
ibucontext);
|
||||
irdma_sc_pd_init(dev, sc_pd, pd_id, ucontext->abi_ver);
|
||||
uresp.pd_id = pd_id;
|
||||
if (ib_copy_to_udata(udata, &uresp,
|
||||
min(sizeof(uresp), udata->outlen))) {
|
||||
err = -EFAULT;
|
||||
err = ib_respond_udata(udata, uresp);
|
||||
if (err)
|
||||
goto error;
|
||||
}
|
||||
} else {
|
||||
irdma_sc_pd_init(dev, sc_pd, pd_id, IRDMA_ABI_VER);
|
||||
}
|
||||
|
|
@ -1124,10 +1122,8 @@ static int irdma_create_qp(struct ib_qp *ibqp,
|
|||
uresp.qp_id = qp_num;
|
||||
uresp.qp_caps = qp->qp_uk.qp_caps;
|
||||
|
||||
err_code = ib_copy_to_udata(udata, &uresp,
|
||||
min(sizeof(uresp), udata->outlen));
|
||||
err_code = ib_respond_udata(udata, uresp);
|
||||
if (err_code) {
|
||||
ibdev_dbg(&iwdev->ibdev, "VERBS: copy_to_udata failed\n");
|
||||
irdma_destroy_qp(&iwqp->ibqp, udata);
|
||||
return err_code;
|
||||
}
|
||||
|
|
@ -1612,12 +1608,9 @@ int irdma_modify_qp_roce(struct ib_qp *ibqp, struct ib_qp_attr *attr,
|
|||
uresp.push_valid = 1;
|
||||
uresp.push_offset = iwqp->sc_qp.push_offset;
|
||||
}
|
||||
ret = ib_copy_to_udata(udata, &uresp, min(sizeof(uresp),
|
||||
udata->outlen));
|
||||
ret = ib_respond_udata(udata, uresp);
|
||||
if (ret) {
|
||||
irdma_remove_push_mmap_entries(iwqp);
|
||||
ibdev_dbg(&iwdev->ibdev,
|
||||
"VERBS: copy_to_udata failed\n");
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
|
@ -1860,12 +1853,9 @@ int irdma_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, int attr_mask,
|
|||
uresp.push_offset = iwqp->sc_qp.push_offset;
|
||||
}
|
||||
|
||||
err = ib_copy_to_udata(udata, &uresp, min(sizeof(uresp),
|
||||
udata->outlen));
|
||||
err = ib_respond_udata(udata, uresp);
|
||||
if (err) {
|
||||
irdma_remove_push_mmap_entries(iwqp);
|
||||
ibdev_dbg(&iwdev->ibdev,
|
||||
"VERBS: copy_to_udata failed\n");
|
||||
return err;
|
||||
}
|
||||
}
|
||||
|
|
@ -2418,11 +2408,9 @@ static int irdma_create_srq(struct ib_srq *ibsrq,
|
|||
|
||||
resp.srq_id = iwsrq->srq_num;
|
||||
resp.srq_size = ukinfo->srq_size;
|
||||
if (ib_copy_to_udata(udata, &resp,
|
||||
min(sizeof(resp), udata->outlen))) {
|
||||
err_code = -EPROTO;
|
||||
err_code = ib_respond_udata(udata, resp);
|
||||
if (err_code)
|
||||
goto srq_destroy;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
@ -2664,13 +2652,9 @@ static int irdma_create_cq(struct ib_cq *ibcq,
|
|||
|
||||
resp.cq_id = info.cq_uk_init_info.cq_id;
|
||||
resp.cq_size = info.cq_uk_init_info.cq_size;
|
||||
if (ib_copy_to_udata(udata, &resp,
|
||||
min(sizeof(resp), udata->outlen))) {
|
||||
ibdev_dbg(&iwdev->ibdev,
|
||||
"VERBS: copy to user data\n");
|
||||
err_code = -EPROTO;
|
||||
err_code = ib_respond_udata(udata, resp);
|
||||
if (err_code)
|
||||
goto cq_destroy;
|
||||
}
|
||||
}
|
||||
|
||||
init_completion(&iwcq->free_cq);
|
||||
|
|
@ -5330,7 +5314,7 @@ static int irdma_create_user_ah(struct ib_ah *ibah,
|
|||
mutex_unlock(&iwdev->rf->ah_tbl_lock);
|
||||
|
||||
uresp.ah_id = ah->sc_ah.ah_info.ah_idx;
|
||||
err = ib_copy_to_udata(udata, &uresp, min(sizeof(uresp), udata->outlen));
|
||||
err = ib_respond_udata(udata, uresp);
|
||||
if (err)
|
||||
irdma_destroy_ah(ibah, attr->flags);
|
||||
|
||||
|
|
|
|||
|
|
@ -79,11 +79,9 @@ int mana_ib_create_cq(struct ib_cq *ibcq, const struct ib_cq_init_attr *attr,
|
|||
|
||||
if (udata) {
|
||||
resp.cqid = cq->queue.id;
|
||||
err = ib_copy_to_udata(udata, &resp, min(sizeof(resp), udata->outlen));
|
||||
if (err) {
|
||||
ibdev_dbg(&mdev->ib_dev, "Failed to copy to udata, %d\n", err);
|
||||
err = ib_respond_udata(udata, resp);
|
||||
if (err)
|
||||
goto err_remove_cq_cb;
|
||||
}
|
||||
}
|
||||
|
||||
spin_lock_init(&cq->cq_lock);
|
||||
|
|
|
|||
|
|
@ -553,11 +553,9 @@ static int mana_ib_create_rc_qp(struct ib_qp *ibqp, struct ib_pd *ibpd,
|
|||
resp.queue_id[j] = qp->rc_qp.queues[i].id;
|
||||
j++;
|
||||
}
|
||||
err = ib_copy_to_udata(udata, &resp, min(sizeof(resp), udata->outlen));
|
||||
if (err) {
|
||||
ibdev_dbg(&mdev->ib_dev, "Failed to copy to udata, %d\n", err);
|
||||
err = ib_respond_udata(udata, resp);
|
||||
if (err)
|
||||
goto destroy_qp;
|
||||
}
|
||||
}
|
||||
|
||||
err = mana_table_store_qp(mdev, qp);
|
||||
|
|
|
|||
|
|
@ -292,12 +292,9 @@ int mlx5_ib_create_srq(struct ib_srq *ib_srq,
|
|||
.srqn = srq->msrq.srqn,
|
||||
};
|
||||
|
||||
if (ib_copy_to_udata(udata, &resp, min(udata->outlen,
|
||||
sizeof(resp)))) {
|
||||
mlx5_ib_dbg(dev, "copy to user failed\n");
|
||||
err = -EFAULT;
|
||||
err = ib_respond_udata(udata, resp);
|
||||
if (err)
|
||||
goto err_core;
|
||||
}
|
||||
}
|
||||
|
||||
init_attr->attr.max_wr = srq->msrq.max - 1;
|
||||
|
|
|
|||
|
|
@ -406,12 +406,10 @@ int pvrdma_create_qp(struct ib_qp *ibqp, struct ib_qp_init_attr *init_attr,
|
|||
qp_resp.qpn = qp->ibqp.qp_num;
|
||||
qp_resp.qp_handle = qp->qp_handle;
|
||||
|
||||
if (ib_copy_to_udata(udata, &qp_resp,
|
||||
min(udata->outlen, sizeof(qp_resp)))) {
|
||||
dev_warn(&dev->pdev->dev,
|
||||
"failed to copy back udata\n");
|
||||
ret = ib_respond_udata(udata, qp_resp);
|
||||
if (ret) {
|
||||
__pvrdma_destroy_qp(dev, qp);
|
||||
return -EINVAL;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user