diff mbox series

[1/2] drm/ttm: test private resv obj on release/destroy

Message ID 20250129152849.15777-1-christian.koenig@amd.com (mailing list archive)
State New
Headers show
Series [1/2] drm/ttm: test private resv obj on release/destroy | expand

Commit Message

Christian König Jan. 29, 2025, 3:28 p.m. UTC
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>
---
 drivers/gpu/drm/ttm/ttm_bo.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

James Zhu Jan. 30, 2025, 2:48 a.m. UTC | #1
Reviewed-and-Tested-by: James Zhu <James.Zhu@amd.com> for the series

On 2025-01-29 10:28, Christian König wrote:
> 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>
> ---
>   drivers/gpu/drm/ttm/ttm_bo.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
> index 06d6a452c4f4..4d6b2143db63 100644
> --- a/drivers/gpu/drm/ttm/ttm_bo.c
> +++ b/drivers/gpu/drm/ttm/ttm_bo.c
> @@ -234,7 +234,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);
> @@ -269,7 +269,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 ||
diff mbox series

Patch

diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index 06d6a452c4f4..4d6b2143db63 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -234,7 +234,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);
@@ -269,7 +269,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 ||