Message ID | 311c2cb791f8af75486df446819071357353db1b.1675088709.git.leon@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Commit | c956940a4ab73a87d0165e911c001dbdd2c8200f |
Headers | show |
Series | [rdma-rc] RDMA/umem: Use dma-buf locked API to solve deadlock | expand |
On 1/30/23 17:25, Leon Romanovsky wrote: > From: Maor Gottlieb <maorg@nvidia.com> > > The cited commit moves umem to call the unlocked versions of dmabuf > unmap/map attachment, but the lock is held while calling to these > functions, hence move back to the locked versions of these APIs. > > Fixes: 21c9c5c0784f ("RDMA/umem: Prepare to dynamic dma-buf locking specification") > Signed-off-by: Maor Gottlieb <maorg@nvidia.com> > Reviewed-by: Christian König <christian.koenig@amd.com> > Signed-off-by: Leon Romanovsky <leonro@nvidia.com> > --- > drivers/infiniband/core/umem_dmabuf.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/infiniband/core/umem_dmabuf.c b/drivers/infiniband/core/umem_dmabuf.c > index 43b26bc12288..39357dc2d229 100644 > --- a/drivers/infiniband/core/umem_dmabuf.c > +++ b/drivers/infiniband/core/umem_dmabuf.c > @@ -26,8 +26,8 @@ int ib_umem_dmabuf_map_pages(struct ib_umem_dmabuf *umem_dmabuf) > if (umem_dmabuf->sgt) > goto wait_fence; > > - sgt = dma_buf_map_attachment_unlocked(umem_dmabuf->attach, > - DMA_BIDIRECTIONAL); > + sgt = dma_buf_map_attachment(umem_dmabuf->attach, > + DMA_BIDIRECTIONAL); > if (IS_ERR(sgt)) > return PTR_ERR(sgt); > > @@ -103,8 +103,8 @@ void ib_umem_dmabuf_unmap_pages(struct ib_umem_dmabuf *umem_dmabuf) > umem_dmabuf->last_sg_trim = 0; > } > > - dma_buf_unmap_attachment_unlocked(umem_dmabuf->attach, umem_dmabuf->sgt, > - DMA_BIDIRECTIONAL); > + dma_buf_unmap_attachment(umem_dmabuf->attach, umem_dmabuf->sgt, > + DMA_BIDIRECTIONAL); > > umem_dmabuf->sgt = NULL; > } Reviewed-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
On Mon, Jan 30, 2023 at 04:25:50PM +0200, Leon Romanovsky wrote: > From: Maor Gottlieb <maorg@nvidia.com> > > The cited commit moves umem to call the unlocked versions of dmabuf > unmap/map attachment, but the lock is held while calling to these > functions, hence move back to the locked versions of these APIs. > > Fixes: 21c9c5c0784f ("RDMA/umem: Prepare to dynamic dma-buf locking specification") > Signed-off-by: Maor Gottlieb <maorg@nvidia.com> > Reviewed-by: Christian König <christian.koenig@amd.com> > Signed-off-by: Leon Romanovsky <leonro@nvidia.com> > Reviewed-by: Dmitry Osipenko <dmitry.osipenko@collabora.com> > --- > drivers/infiniband/core/umem_dmabuf.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) Applied to for-next, thanks Jason
diff --git a/drivers/infiniband/core/umem_dmabuf.c b/drivers/infiniband/core/umem_dmabuf.c index 43b26bc12288..39357dc2d229 100644 --- a/drivers/infiniband/core/umem_dmabuf.c +++ b/drivers/infiniband/core/umem_dmabuf.c @@ -26,8 +26,8 @@ int ib_umem_dmabuf_map_pages(struct ib_umem_dmabuf *umem_dmabuf) if (umem_dmabuf->sgt) goto wait_fence; - sgt = dma_buf_map_attachment_unlocked(umem_dmabuf->attach, - DMA_BIDIRECTIONAL); + sgt = dma_buf_map_attachment(umem_dmabuf->attach, + DMA_BIDIRECTIONAL); if (IS_ERR(sgt)) return PTR_ERR(sgt); @@ -103,8 +103,8 @@ void ib_umem_dmabuf_unmap_pages(struct ib_umem_dmabuf *umem_dmabuf) umem_dmabuf->last_sg_trim = 0; } - dma_buf_unmap_attachment_unlocked(umem_dmabuf->attach, umem_dmabuf->sgt, - DMA_BIDIRECTIONAL); + dma_buf_unmap_attachment(umem_dmabuf->attach, umem_dmabuf->sgt, + DMA_BIDIRECTIONAL); umem_dmabuf->sgt = NULL; }