drm/amdgpu: csa_vaddr should not larger than AMDGPU_GMC_HOLE_START
authorwentalou <Wentao.Lou@amd.com>
Mon, 14 Jan 2019 08:26:13 +0000 (16:26 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 29 Jan 2019 20:16:18 +0000 (15:16 -0500)
After removing unnecessary VM size calculations,
vm_manager.max_pfn would reach 0x10,0000,0000
max_pfn << AMDGPU_GPU_PAGE_SHIFT exceeding AMDGPU_GMC_HOLE_START
would cause GPU reset.

Signed-off-by: wentalou <Wentao.Lou@amd.com>
Reviewed-by: Monk Liu <monk.liu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_csa.c

index 7e22be7..dd3bd01 100644 (file)
@@ -26,7 +26,8 @@
 
 uint64_t amdgpu_csa_vaddr(struct amdgpu_device *adev)
 {
-       uint64_t addr = adev->vm_manager.max_pfn << AMDGPU_GPU_PAGE_SHIFT;
+       uint64_t addr = min(adev->vm_manager.max_pfn << AMDGPU_GPU_PAGE_SHIFT,
+                               AMDGPU_GMC_HOLE_START);
 
        addr -= AMDGPU_VA_RESERVED_SIZE;
        addr = amdgpu_gmc_sign_extend(addr);