Fix up the remaining different patterns in mlx5 to use the helper.
Signed-off-by: Jason Gunthorpe <[email protected]>
---
drivers/infiniband/hw/mlx5/mr.c | 7 +------
drivers/infiniband/hw/mlx5/srq.c | 15 +++------------
2 files changed, 4 insertions(+), 18 deletions(-)
diff --git a/drivers/infiniband/hw/mlx5/mr.c b/drivers/infiniband/hw/mlx5/mr.c
index cbe34251e340b9..fce519b87633ef 100644
--- a/drivers/infiniband/hw/mlx5/mr.c
+++ b/drivers/infiniband/hw/mlx5/mr.c
@@ -1774,18 +1774,13 @@ int mlx5_ib_alloc_mw(struct ib_mw *ibmw, struct
ib_udata *udata)
__u32 response_length;
} resp = {};
- err = ib_copy_from_udata(&req, udata, min(udata->inlen, sizeof(req)));
+ err = ib_copy_validate_udata_in(udata, req, reserved2);
if (err)
return err;
if (req.comp_mask || req.reserved1 || req.reserved2)
return -EOPNOTSUPP;
- if (udata->inlen > sizeof(req) &&
- !ib_is_udata_cleared(udata, sizeof(req),
- udata->inlen - sizeof(req)))
- return -EOPNOTSUPP;
-
ndescs = req.num_klms ? roundup(req.num_klms, 4) : roundup(1, 4);
in = kzalloc(inlen, GFP_KERNEL);
diff --git a/drivers/infiniband/hw/mlx5/srq.c b/drivers/infiniband/hw/mlx5/srq.c
index 17e018554d81d5..6d89c0242cab61 100644
--- a/drivers/infiniband/hw/mlx5/srq.c
+++ b/drivers/infiniband/hw/mlx5/srq.c
@@ -48,25 +48,16 @@ static int create_srq_user(struct ib_pd *pd, struct
mlx5_ib_srq *srq,
struct mlx5_ib_create_srq ucmd = {};
struct mlx5_ib_ucontext *ucontext = rdma_udata_to_drv_context(
udata, struct mlx5_ib_ucontext, ibucontext);
- size_t ucmdlen;
int err;
u32 uidx = MLX5_IB_DEFAULT_UIDX;
- ucmdlen = min(udata->inlen, sizeof(ucmd));
-
- if (ib_copy_from_udata(&ucmd, udata, ucmdlen)) {
- mlx5_ib_dbg(dev, "failed copy udata\n");
- return -EFAULT;
- }
+ err = ib_copy_validate_udata_in(udata, ucmd, flags);
+ if (err)
+ return err;
if (ucmd.reserved0 || ucmd.reserved1)
return -EINVAL;
- if (udata->inlen > sizeof(ucmd) &&
- !ib_is_udata_cleared(udata, sizeof(ucmd),
- udata->inlen - sizeof(ucmd)))
- return -EINVAL;
-
if (in->type != IB_SRQT_BASIC) {
err = get_srq_user_index(ucontext, &ucmd, udata->inlen, &uidx);
if (err)
--
2.43.0