> -----Original Message----- > From: Leon Romanovsky <leon@xxxxxxxxxx> > Sent: Tuesday, December 08, 2020 10:45 PM > To: Xiong, Jianxin <jianxin.xiong@xxxxxxxxx> > Cc: linux-rdma@xxxxxxxxxxxxxxx; dri-devel@xxxxxxxxxxxxxxxxxxxxx; Doug Ledford <dledford@xxxxxxxxxx>; Jason Gunthorpe <jgg@xxxxxxxx>; > Sumit Semwal <sumit.semwal@xxxxxxxxxx>; Christian Koenig <christian.koenig@xxxxxxx>; Vetter, Daniel <daniel.vetter@xxxxxxxxx> > Subject: Re: [PATCH v14 4/4] RDMA/mlx5: Support dma-buf based userspace memory region > > On Tue, Dec 08, 2020 at 02:39:15PM -0800, Jianxin Xiong wrote: > > Implement the new driver method 'reg_user_mr_dmabuf'. Utilize the > > core functions to import dma-buf based memory region and update the mappings. > > > > Add code to handle dma-buf related page fault. > > > > Signed-off-by: Jianxin Xiong <jianxin.xiong@xxxxxxxxx> > > Reviewed-by: Sean Hefty <sean.hefty@xxxxxxxxx> > > Acked-by: Michael J. Ruhl <michael.j.ruhl@xxxxxxxxx> > > Acked-by: Christian Koenig <christian.koenig@xxxxxxx> > > Acked-by: Daniel Vetter <daniel.vetter@xxxxxxxx> > > --- > > drivers/infiniband/hw/mlx5/main.c | 2 + > > drivers/infiniband/hw/mlx5/mlx5_ib.h | 18 +++++ > > drivers/infiniband/hw/mlx5/mr.c | 128 +++++++++++++++++++++++++++++++++-- > > drivers/infiniband/hw/mlx5/odp.c | 86 +++++++++++++++++++++-- > > 4 files changed, 225 insertions(+), 9 deletions(-) > > <...> > > > > > + > > + umem = ib_umem_dmabuf_get(&dev->ib_dev, offset, length, fd, access_flags, > > + &mlx5_ib_dmabuf_attach_ops); > > + if (IS_ERR(umem)) { > > + mlx5_ib_dbg(dev, "umem get failed (%ld)\n", PTR_ERR(umem)); > > + return ERR_PTR(PTR_ERR(umem)); > > return ERR_CAST(umem); > > > + } > > <...> > > > + dma_resv_lock(umem_dmabuf->attach->dmabuf->resv, NULL); > > + err = ib_umem_dmabuf_map_pages(umem_dmabuf); > > + if (!err) { > > + page_size = mlx5_umem_find_best_pgsz(&umem_dmabuf->umem, mkc, > > + log_page_size, 0, > > + umem_dmabuf->umem.iova); > > + if (unlikely(page_size < PAGE_SIZE)) { > > + ib_umem_dmabuf_unmap_pages(umem_dmabuf); > > + err = -EINVAL; > > + } else { > > + err = mlx5_ib_update_mr_pas(mr, xlt_flags); > > + } > > + } > > + dma_resv_unlock(umem_dmabuf->attach->dmabuf->resv); > > Let's write this section in kernel coding style, please > > dma_resv_lock(umem_dmabuf->attach->dmabuf->resv, NULL); err = ib_umem_dmabuf_map_pages(umem_dmabuf); > if (err) { > dma_resv_unlock(umem_dmabuf->attach->dmabuf->resv); > return err; > } > ..... > Thanks a lot. Will fix these. _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel