OSDN Git Service

IB/mlx5: Set correct write permissions for implicit ODP MR
authorMoni Shoua <monis@mellanox.com>
Mon, 25 Feb 2019 06:53:00 +0000 (08:53 +0200)
committerJason Gunthorpe <jgg@mellanox.com>
Mon, 4 Mar 2019 14:57:19 +0000 (10:57 -0400)
The write access of an implicit MR is inherited to all of its children.
Therefore we must set the correct write access to the parent MR.

Pass full access_flags when creating umem to let it calculate write access
correctly.

Fixes: da6a496a34f2 ("IB/mlx5: Ranges in implicit ODP MR inherit its write access")
Signed-off-by: Moni Shoua <monis@mellanox.com>
Reviewed-by: Artemy Kovalyov <artemyko@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/hw/mlx5/odp.c

index d828c20..c20bfc4 100644 (file)
@@ -522,7 +522,7 @@ struct mlx5_ib_mr *mlx5_ib_alloc_implicit_mr(struct mlx5_ib_pd *pd,
        struct mlx5_ib_mr *imr;
        struct ib_umem *umem;
 
-       umem = ib_umem_get(udata, 0, 0, IB_ACCESS_ON_DEMAND, 0);
+       umem = ib_umem_get(udata, 0, 0, access_flags, 0);
        if (IS_ERR(umem))
                return ERR_CAST(umem);