Re: [PATCH rdma-next v2] RDMA/mana_ib: Adopt robust udata
From: Leon Romanovsky
Date: Mon Jul 13 2026 - 11:23:08 EST
On Mon, Jul 13, 2026 at 03:09:55AM -0700, Konstantin Taranov wrote:
> From: Konstantin Taranov <kotaranov@xxxxxxxxxxxxx>
>
> Enable the uverbs robust udata interface in mana_ib by setting
> uverbs_robust_udata and converting the driver to the new udata
> handling model.
>
> Signed-off-by: Konstantin Taranov <kotaranov@xxxxxxxxxxxxx>
> ---
> v2: Removed the udata request for alloc ucontext
> drivers/infiniband/hw/mana/cq.c | 10 +++++--
> drivers/infiniband/hw/mana/device.c | 1 +
> drivers/infiniband/hw/mana/main.c | 29 +++++++++++++-----
> drivers/infiniband/hw/mana/mr.c | 15 +++++++++-
> drivers/infiniband/hw/mana/qp.c | 46 ++++++++++++++++++++++-------
> drivers/infiniband/hw/mana/wq.c | 16 ++++++++--
> include/uapi/rdma/mana-abi.h | 2 +-
> 7 files changed, 94 insertions(+), 25 deletions(-)
>
> diff --git a/drivers/infiniband/hw/mana/cq.c b/drivers/infiniband/hw/mana/cq.c
> index f2547989f..a5757847b 100644
> --- a/drivers/infiniband/hw/mana/cq.c
> +++ b/drivers/infiniband/hw/mana/cq.c
> @@ -27,7 +27,8 @@ int mana_ib_create_cq(struct ib_cq *ibcq, const struct ib_cq_init_attr *attr,
> is_rnic_cq = mana_ib_is_rnic(mdev);
>
> if (udata) {
> - err = ib_copy_validate_udata_in(udata, ucmd, buf_addr);
> + err = ib_copy_validate_udata_in_cm(udata, ucmd, buf_addr,
> + MANA_IB_CREATE_RNIC_CQ);
> if (err)
> return err;
>
> @@ -105,6 +106,11 @@ int mana_ib_destroy_cq(struct ib_cq *ibcq, struct ib_udata *udata)
> struct mana_ib_cq *cq = container_of(ibcq, struct mana_ib_cq, ibcq);
> struct ib_device *ibdev = ibcq->device;
> struct mana_ib_dev *mdev;
> + int err;
> +
> + err = ib_is_udata_in_empty(udata);
You should use ib_no_udata_io() in destroy/modify/resize flows.
Thanks