From: Jason Gunthorpe <jgg@nvidia.com>
To: Abhijit Gangurde <abhijit.gangurde@amd.com>,
Allen Hubbe <allen.hubbe@amd.com>,
Broadcom internal kernel review list
<bcm-kernel-feedback-list@broadcom.com>,
Bernard Metzler <bernard.metzler@linux.dev>,
Potnuri Bharat Teja <bharat@chelsio.com>,
Bryan Tan <bryan-bt.tan@broadcom.com>,
Cheng Xu <chengyou@linux.alibaba.com>,
Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>,
Gal Pressman <gal.pressman@linux.dev>,
Junxian Huang <huangjunxian6@hisilicon.com>,
Kai Shen <kaishen@linux.alibaba.com>,
Kalesh AP <kalesh-anakkur.purayil@broadcom.com>,
Konstantin Taranov <kotaranov@microsoft.com>,
Krzysztof Czurylo <krzysztof.czurylo@intel.com>,
Leon Romanovsky <leon@kernel.org>,
linux-hyperv@vger.kernel.org, linux-rdma@vger.kernel.org,
Long Li <longli@microsoft.com>,
Michal Kalderon <mkalderon@marvell.com>,
Michael Margolin <mrgolin@amazon.com>,
Nelson Escobar <neescoba@cisco.com>,
Satish Kharat <satishkh@cisco.com>,
Selvin Xavier <selvin.xavier@broadcom.com>,
Yossi Leybovich <sleybo@amazon.com>,
Chengchang Tang <tangchengchang@huawei.com>,
Tatyana Nikolova <tatyana.e.nikolova@intel.com>,
Vishnu Dasa <vishnu.dasa@broadcom.com>,
Yishai Hadas <yishaih@nvidia.com>
Cc: patches@lists.linux.dev
Subject: [PATCH 02/10] IB/rdmavt: Don't abuse udata and ib_respond_udata()
Date: Mon, 6 Apr 2026 09:11:16 -0300 [thread overview]
Message-ID: <2-v1-e911b76a94d1+65d95-rdma_udata_rep_jgg@nvidia.com> (raw)
In-Reply-To: <0-v1-e911b76a94d1+65d95-rdma_udata_rep_jgg@nvidia.com>
Use copy_to_user() directly since the data is not being placed in the
udata response memory.
It is unclear why this is trying to do two copies, but leave it alone.
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
---
drivers/infiniband/sw/rdmavt/srq.c | 19 +++++++++----------
1 file changed, 9 insertions(+), 10 deletions(-)
diff --git a/drivers/infiniband/sw/rdmavt/srq.c b/drivers/infiniband/sw/rdmavt/srq.c
index fe125bf85b2726..d022aa56c5bfd5 100644
--- a/drivers/infiniband/sw/rdmavt/srq.c
+++ b/drivers/infiniband/sw/rdmavt/srq.c
@@ -128,6 +128,7 @@ int rvt_modify_srq(struct ib_srq *ibsrq, struct ib_srq_attr *attr,
struct rvt_srq *srq = ibsrq_to_rvtsrq(ibsrq);
struct rvt_dev_info *dev = ib_to_rvt(ibsrq->device);
struct rvt_rq tmp_rq = {};
+ __u64 offset_addr;
int ret = 0;
if (attr_mask & IB_SRQ_MAX_WR) {
@@ -149,19 +150,17 @@ int rvt_modify_srq(struct ib_srq *ibsrq, struct ib_srq_attr *attr,
return -ENOMEM;
/* Check that we can write the offset to mmap. */
if (udata && udata->inlen >= sizeof(__u64)) {
- __u64 offset_addr;
__u64 offset = 0;
ret = ib_copy_from_udata(&offset_addr, udata,
sizeof(offset_addr));
if (ret)
goto bail_free;
- udata->outbuf = (void __user *)
- (unsigned long)offset_addr;
- ret = ib_copy_to_udata(udata, &offset,
- sizeof(offset));
- if (ret)
+ if (copy_to_user(u64_to_user_ptr(offset_addr), &offset,
+ sizeof(offset))) {
+ ret = -EFAULT;
goto bail_free;
+ }
}
spin_lock_irq(&srq->rq.kwq->c_lock);
@@ -236,10 +235,10 @@ int rvt_modify_srq(struct ib_srq *ibsrq, struct ib_srq_attr *attr,
* See rvt_mmap() for details.
*/
if (udata && udata->inlen >= sizeof(__u64)) {
- ret = ib_copy_to_udata(udata, &ip->offset,
- sizeof(ip->offset));
- if (ret)
- return ret;
+ if (copy_to_user(u64_to_user_ptr(offset_addr),
+ &ip->offset,
+ sizeof(ip->offset)))
+ return -EFAULT;
}
/*
--
2.43.0
next prev parent reply other threads:[~2026-04-06 12:11 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-06 12:11 [PATCH 00/10] Convert all drivers to the new udata response flow Jason Gunthorpe
2026-04-06 12:11 ` [PATCH 01/10] RDMA: Use ib_is_udata_in_empty() for places calling ib_is_udata_cleared() Jason Gunthorpe
2026-04-06 12:11 ` Jason Gunthorpe [this message]
2026-04-06 12:11 ` [PATCH 03/10] RDMA: Convert drivers using min to ib_respond_udata() Jason Gunthorpe
2026-04-06 12:11 ` [PATCH 04/10] RDMA: Convert drivers using sizeof() " Jason Gunthorpe
2026-04-06 12:11 ` [PATCH 05/10] RDMA/cxgb4: Convert " Jason Gunthorpe
2026-04-06 12:11 ` [PATCH 06/10] RDMA/qedr: Replace qedr_ib_copy_to_udata() with ib_respond_udata() Jason Gunthorpe
2026-04-06 12:11 ` [PATCH 07/10] RDMA/mlx: Replace response_len " Jason Gunthorpe
2026-04-06 12:11 ` [PATCH 08/10] RDMA: Use proper driver data response structs instead of open coding Jason Gunthorpe
2026-04-06 12:11 ` [PATCH 09/10] RDMA: Add missed = {} initialization to uresp structs Jason Gunthorpe
2026-04-06 12:11 ` [PATCH 10/10] RDMA: Replace memset with = {} pattern for ib_respond_udata() Jason Gunthorpe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2-v1-e911b76a94d1+65d95-rdma_udata_rep_jgg@nvidia.com \
--to=jgg@nvidia.com \
--cc=abhijit.gangurde@amd.com \
--cc=allen.hubbe@amd.com \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=bernard.metzler@linux.dev \
--cc=bharat@chelsio.com \
--cc=bryan-bt.tan@broadcom.com \
--cc=chengyou@linux.alibaba.com \
--cc=dennis.dalessandro@cornelisnetworks.com \
--cc=gal.pressman@linux.dev \
--cc=huangjunxian6@hisilicon.com \
--cc=kaishen@linux.alibaba.com \
--cc=kalesh-anakkur.purayil@broadcom.com \
--cc=kotaranov@microsoft.com \
--cc=krzysztof.czurylo@intel.com \
--cc=leon@kernel.org \
--cc=linux-hyperv@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=longli@microsoft.com \
--cc=mkalderon@marvell.com \
--cc=mrgolin@amazon.com \
--cc=neescoba@cisco.com \
--cc=patches@lists.linux.dev \
--cc=satishkh@cisco.com \
--cc=selvin.xavier@broadcom.com \
--cc=sleybo@amazon.com \
--cc=tangchengchang@huawei.com \
--cc=tatyana.e.nikolova@intel.com \
--cc=vishnu.dasa@broadcom.com \
--cc=yishaih@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox