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

James Zhu jamesz at amd.com
Thu Jan 30 02:48:35 UTC 2025


Reviewed-and-Tested-by: James Zhu <James.Zhu at 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 at 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 ||


More information about the amd-gfx mailing list