drm/amdgpu: Fix a false positive when pin non-VRAM memory
authorxinhui pan <xinhui.pan@amd.com>
Sat, 30 Jan 2021 00:41:04 +0000 (08:41 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 2 Feb 2021 17:06:21 +0000 (12:06 -0500)
Flag TTM_PL_FLAG_CONTIGUOUS is only valid for VRAM domain. So fix the
false positive by checking memory type too.

Suggested-by: Felix Kuehling <Felix.Kuehling@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: xinhui pan <xinhui.pan@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c

index 52f98e3..9961471 100644 (file)
@@ -916,7 +916,8 @@ int amdgpu_bo_pin_restricted(struct amdgpu_bo *bo, u32 domain,
                if (!(domain & amdgpu_mem_type_to_domain(mem_type)))
                        return -EINVAL;
 
-               if ((bo->flags & AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS) &&
+               if ((mem_type == TTM_PL_VRAM) &&
+                   (bo->flags & AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS) &&
                    !(mem_flags & TTM_PL_FLAG_CONTIGUOUS))
                        return -EINVAL;