]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu/vce1: Don't repeat GTT MGR node allocation
authorTimur Kristóf <timur.kristof@gmail.com>
Wed, 13 May 2026 20:04:12 +0000 (22:04 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 19 May 2026 16:10:37 +0000 (12:10 -0400)
Only allocate entries from the GTT manager when the
VCE GTT node is not allocated yet. This prevents the
possibility of allocating them multiple times, which
causes issues during GPU reset and suspend/resume.

Fixes: 71aec08f80e7 ("amdgpu/vce: use amdgpu_gtt_mgr_alloc_entries")
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 8d2a20c1721cb17e22821e1b4ecbb02d475d91c5)

drivers/gpu/drm/amd/amdgpu/vce_v1_0.c

index a49f11be74b20a1466335eecd668a775db4ce67b..92c3cf3fce4f02b4034b5ab247284bf8bd56148a 100644 (file)
@@ -545,11 +545,13 @@ static int vce_v1_0_ensure_vcpu_bo_32bit_addr(struct amdgpu_device *adev)
        if (adev->gmc.vram_start < adev->gmc.gart_start)
                return amdgpu_bo_gpu_offset(adev->vce.vcpu_bo) <= max_vcpu_bo_addr ? 0 : -EINVAL;
 
-       r = amdgpu_gtt_mgr_alloc_entries(&adev->mman.gtt_mgr,
-                                        &adev->vce.gart_node, num_pages,
-                                        DRM_MM_INSERT_LOW);
-       if (r)
-               return r;
+       if (!drm_mm_node_allocated(&adev->vce.gart_node)) {
+               r = amdgpu_gtt_mgr_alloc_entries(&adev->mman.gtt_mgr,
+                                                &adev->vce.gart_node, num_pages,
+                                                DRM_MM_INSERT_LOW);
+               if (r)
+                       return r;
+       }
 
        vce_gart_start_offs = amdgpu_gtt_node_to_byte_offset(&adev->vce.gart_node);