]> Gentwo Git Trees - linux/.git/commitdiff
drm/amdgpu: add missing lock to amdgpu_ttm_access_memory_sdma
authorPierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Tue, 25 Nov 2025 09:48:39 +0000 (10:48 +0100)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 2 Dec 2025 16:01:21 +0000 (11:01 -0500)
Users of ttm entities need to hold the gtt_window_lock before using them
to guarantee proper ordering of jobs.

Cc: stable@vger.kernel.org
Fixes: cb5cc4f573e1 ("drm/amdgpu: improve debug VRAM access performance using sdma")
Signed-off-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c

index 5475f7117f10186603dee5029967a8fe4a569b23..1b799f895dbfcafdd2a726f600c129143375d280 100644 (file)
@@ -1486,6 +1486,7 @@ static int amdgpu_ttm_access_memory_sdma(struct ttm_buffer_object *bo,
        if (r)
                goto out;
 
+       mutex_lock(&adev->mman.gtt_window_lock);
        amdgpu_res_first(abo->tbo.resource, offset, len, &src_mm);
        src_addr = amdgpu_ttm_domain_start(adev, bo->resource->mem_type) +
                src_mm.start;
@@ -1500,6 +1501,7 @@ static int amdgpu_ttm_access_memory_sdma(struct ttm_buffer_object *bo,
        WARN_ON(job->ibs[0].length_dw > num_dw);
 
        fence = amdgpu_job_submit(job);
+       mutex_unlock(&adev->mman.gtt_window_lock);
 
        if (!dma_fence_wait_timeout(fence, false, adev->sdma_timeout))
                r = -ETIMEDOUT;