Skip to content

Commit 530b251

Browse files
jgunthorperleon
authored andcommitted
RDMA/mlx5: Use ib_copy_validate_udata_in() for MW
The userspace side on MW made a mistake and never actually used the udata driver structure that was defined so it always passes 0 length. Keep the kernel structure but this conversion has to permit 0 length as well. Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
1 parent c8f9a7a commit 530b251

1 file changed

Lines changed: 6 additions & 9 deletions

File tree

  • drivers/infiniband/hw/mlx5

drivers/infiniband/hw/mlx5/mr.c

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1774,16 +1774,13 @@ int mlx5_ib_alloc_mw(struct ib_mw *ibmw, struct ib_udata *udata)
17741774
__u32 response_length;
17751775
} resp = {};
17761776

1777-
err = ib_copy_from_udata(&req, udata, min(udata->inlen, sizeof(req)));
1778-
if (err)
1779-
return err;
1780-
1781-
if (req.comp_mask || req.reserved1 || req.reserved2)
1782-
return -EOPNOTSUPP;
1777+
if (udata->inlen) {
1778+
err = ib_copy_validate_udata_in_cm(udata, req, reserved2, 0);
1779+
if (err)
1780+
return err;
1781+
}
17831782

1784-
if (udata->inlen > sizeof(req) &&
1785-
!ib_is_udata_cleared(udata, sizeof(req),
1786-
udata->inlen - sizeof(req)))
1783+
if (req.reserved1 || req.reserved2)
17871784
return -EOPNOTSUPP;
17881785

17891786
ndescs = req.num_klms ? roundup(req.num_klms, 4) : roundup(1, 4);

0 commit comments

Comments
 (0)