]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/ttm: test private resv obj on release/destroy
authorChristian König <christian.koenig@amd.com>
Wed, 29 Jan 2025 15:28:48 +0000 (16:28 +0100)
committerChristian König <christian.koenig@amd.com>
Thu, 6 Mar 2025 15:50:13 +0000 (16:50 +0100)
Test the fences in the private dma_resv object instead of the pointer to
a potentially shared dma_resv object.

This only matters for imported BOs with an SG table since those don't
get their dma_resv pointer replaced on release.

Signed-off-by: Christian König <christian.koenig@amd.com>
Signed-off-by: James Zhu <James.Zhu@amd.com>
Reviewed-by: James Zhu <James.Zhu@amd.com>
Tested-by: James Zhu <James.Zhu@amd.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250129152849.15777-1-christian.koenig@amd.com
drivers/gpu/drm/ttm/ttm_bo.c

index 95b86003c50ded03a927dd933899c1db9809fa8c..e218a7ce490e229a1401e2132eaf2327917389d7 100644 (file)
@@ -235,7 +235,7 @@ static void ttm_bo_delayed_delete(struct work_struct *work)
 
        bo = container_of(work, typeof(*bo), delayed_delete);
 
-       dma_resv_wait_timeout(bo->base.resv, DMA_RESV_USAGE_BOOKKEEP, false,
+       dma_resv_wait_timeout(&bo->base._resv, DMA_RESV_USAGE_BOOKKEEP, false,
                              MAX_SCHEDULE_TIMEOUT);
        dma_resv_lock(bo->base.resv, NULL);
        ttm_bo_cleanup_memtype_use(bo);
@@ -270,7 +270,7 @@ static void ttm_bo_release(struct kref *kref)
                drm_vma_offset_remove(bdev->vma_manager, &bo->base.vma_node);
                ttm_mem_io_free(bdev, bo->resource);
 
-               if (!dma_resv_test_signaled(bo->base.resv,
+               if (!dma_resv_test_signaled(&bo->base._resv,
                                            DMA_RESV_USAGE_BOOKKEEP) ||
                    (want_init_on_free() && (bo->ttm != NULL)) ||
                    bo->type == ttm_bo_type_sg ||