Re: [PATCH rdma-next] RDMA/core: Rely on vendors to set right IOVA
From: Jason Gunthorpe
Date: Fri Oct 29 2021 - 12:27:09 EST
On Thu, Oct 28, 2021 at 08:55:22AM +0300, Leon Romanovsky wrote:
> From: Aharon Landau <aharonl@xxxxxxxxxx>
>
> The vendors set the IOVA of newly created MRs in rereg_user_mr, so don't
> overwrite it. That ensures that this field is set only if IB_MR_REREG_TRANS
> flag is provided.
>
> Fixes: 6e0954b11c05 ("RDMA/uverbs: Allow drivers to create a new HW object during rereg_mr")
This isn't really a fixes type patch..
> Signed-off-by: Aharon Landau <aharonl@xxxxxxxxxx>
> Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxx>
> drivers/infiniband/core/uverbs_cmd.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c
> index 740e6b2efe0e..d1345d76d9b1 100644
> +++ b/drivers/infiniband/core/uverbs_cmd.c
> @@ -837,11 +837,8 @@ static int ib_uverbs_rereg_mr(struct uverbs_attr_bundle *attrs)
> new_mr->device = new_pd->device;
> new_mr->pd = new_pd;
> new_mr->type = IB_MR_TYPE_USER;
> - new_mr->dm = NULL;
> - new_mr->sig_attrs = NULL;
> new_mr->uobject = uobj;
> atomic_inc(&new_pd->usecnt);
> - new_mr->iova = cmd.hca_va;
> new_uobj->object = new_mr;
It is like this because the reg_mr path does it this way, if you want
to change it here then change reg_mr as well, but that needs auditing
all the drivers..
And I'd also suggest removing the other set a few lines below
Jason