On Tue, Dec 15, 2020 at 01:27:12PM -0800, Jianxin Xiong wrote:
> Jianxin Xiong (4):
>   RDMA/umem: Support importing dma-buf as user memory region
>   RDMA/core: Add device method for registering dma-buf based memory
>     region
>   RDMA/uverbs: Add uverbs command for dma-buf based MR registration
>   RDMA/mlx5: Support dma-buf based userspace memory region

I applied the below fix for rereg, but otherwise took this to rdma's
for-next

Thanks,
Jason

diff --git a/drivers/infiniband/hw/mlx5/mr.c b/drivers/infiniband/hw/mlx5/mr.c
index f9ca19fa531b45..a63ef7c66e383d 100644
--- a/drivers/infiniband/hw/mlx5/mr.c
+++ b/drivers/infiniband/hw/mlx5/mr.c
@@ -1825,9 +1825,6 @@ struct ib_mr *mlx5_ib_rereg_user_mr(struct ib_mr *ib_mr, 
int flags, u64 start,
        if (flags & ~(IB_MR_REREG_TRANS | IB_MR_REREG_PD | IB_MR_REREG_ACCESS))
                return ERR_PTR(-EOPNOTSUPP);
 
-       if (is_dmabuf_mr(mr))
-               return ERR_PTR(-EOPNOTSUPP);
-
        if (!(flags & IB_MR_REREG_ACCESS))
                new_access_flags = mr->access_flags;
        if (!(flags & IB_MR_REREG_PD))
@@ -1844,8 +1841,8 @@ struct ib_mr *mlx5_ib_rereg_user_mr(struct ib_mr *ib_mr, 
int flags, u64 start,
                                return ERR_PTR(err);
                        return NULL;
                }
-               /* DM or ODP MR's don't have a umem so we can't re-use it */
-               if (!mr->umem || is_odp_mr(mr))
+               /* DM or ODP MR's don't have a normal umem so we can't re-use 
it */
+               if (!mr->umem || is_odp_mr(mr) || is_dmabuf_mr(mr))
                        goto recreate;
 
                /*
@@ -1864,10 +1861,10 @@ struct ib_mr *mlx5_ib_rereg_user_mr(struct ib_mr 
*ib_mr, int flags, u64 start,
        }
 
        /*
-        * DM doesn't have a PAS list so we can't re-use it, odp does but the
-        * logic around releasing the umem is different
+        * DM doesn't have a PAS list so we can't re-use it, odp/dmabuf does
+        * but the logic around releasing the umem is different
         */
-       if (!mr->umem || is_odp_mr(mr))
+       if (!mr->umem || is_odp_mr(mr) || is_dmabuf_mr(mr))
                goto recreate;
 
        if (!(new_access_flags & IB_ACCESS_ON_DEMAND) &&
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to