From 2b5a73cc4eb5b9359c010e73c741cc868be76a12 Mon Sep 17 00:00:00 2001 From: Philip Yang Date: Tue, 23 Jan 2018 21:34:26 -0500 Subject: [PATCH 3286/4131] drm/amdkfd: Fix crash in unmap to gpu while PD bo evicted PD and PT may be evicted during evict restore test, validate PD and PT before accessing PD and PT in map and unmap memory to GPU path to avoid WARNING and VMC page fault later. Change-Id: I5b8c3e10383d2d4b515e23edc5f284bdbd620943 Signed-off-by: Philip Yang --- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c index 2409b56..54d705a 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c @@ -1302,6 +1302,10 @@ int amdgpu_amdkfd_gpuvm_map_memory_to_gpu( if (ret != 0) goto add_bo_to_vm_failed_aql; } + } else { + ret = vm_validate_pt_pd_bos((struct amdkfd_vm *)vm); + if (unlikely(ret != 0)) + goto add_bo_to_vm_failed; } if (mem->mapped_to_gpu_memory == 0 && @@ -1564,6 +1568,10 @@ int amdgpu_amdkfd_gpuvm_unmap_memory_from_gpu( if (unlikely(ret != 0)) goto out; + ret = vm_validate_pt_pd_bos((struct amdkfd_vm *)vm); + if (unlikely(ret != 0)) + goto unreserve_out; + pr_debug("Unmap VA 0x%llx - 0x%llx from vm %p\n", mem->va, mem->va + bo_size * (1 + mem->aql_queue), -- 2.7.4