Use dma_resv_wait() instead of extracting the exclusive fence and
waiting on it manually.

Signed-off-by: Christian König <christian.koe...@amd.com>
Reviewed-by: Daniel Vetter <daniel.vet...@ffwll.ch>
Cc: Jason Gunthorpe <j...@ziepe.ca>
Cc: Leon Romanovsky <l...@kernel.org>
Cc: Maor Gottlieb <ma...@nvidia.com>
Cc: Gal Pressman <galpr...@amazon.com>
Cc: linux-me...@vger.kernel.org
Cc: linaro-mm-...@lists.linaro.org
---
 drivers/infiniband/core/umem_dmabuf.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/infiniband/core/umem_dmabuf.c 
b/drivers/infiniband/core/umem_dmabuf.c
index f0760741f281..d32cd7538835 100644
--- a/drivers/infiniband/core/umem_dmabuf.c
+++ b/drivers/infiniband/core/umem_dmabuf.c
@@ -16,7 +16,6 @@ int ib_umem_dmabuf_map_pages(struct ib_umem_dmabuf 
*umem_dmabuf)
 {
        struct sg_table *sgt;
        struct scatterlist *sg;
-       struct dma_fence *fence;
        unsigned long start, end, cur = 0;
        unsigned int nmap = 0;
        int i;
@@ -68,11 +67,8 @@ int ib_umem_dmabuf_map_pages(struct ib_umem_dmabuf 
*umem_dmabuf)
         * may be not up-to-date. Wait for the exporter to finish
         * the migration.
         */
-       fence = dma_resv_excl_fence(umem_dmabuf->attach->dmabuf->resv);
-       if (fence)
-               return dma_fence_wait(fence, false);
-
-       return 0;
+       return dma_resv_wait_timeout(umem_dmabuf->attach->dmabuf->resv, false,
+                                    false, MAX_SCHEDULE_TIMEOUT);
 }
 EXPORT_SYMBOL(ib_umem_dmabuf_map_pages);
 
-- 
2.25.1

Reply via email to