Commit 859958a7 authored by Heng Zhou's avatar Heng Zhou Committed by Alex Deucher
Browse files

drm/amdgpu: fix nullptr err of vm_handle_moved



If a amdgpu_bo_va is fpriv->prt_va, the bo of this one is always NULL.
So, such kind of amdgpu_bo_va should be updated separately before
amdgpu_vm_handle_moved.

Signed-off-by: default avatarHeng Zhou <Heng.Zhou@amd.com>
Reviewed-by: default avatarKasiviswanathan, Harish <Harish.Kasiviswanathan@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 3a75edf9
Loading
Loading
Loading
Loading
+14 −1
Original line number Diff line number Diff line
@@ -2970,9 +2970,22 @@ int amdgpu_amdkfd_gpuvm_restore_process_bos(void *info, struct dma_fence __rcu *
		struct amdgpu_device *adev = amdgpu_ttm_adev(
			peer_vm->root.bo->tbo.bdev);

		struct amdgpu_fpriv *fpriv =
			container_of(peer_vm, struct amdgpu_fpriv, vm);

		ret = amdgpu_vm_bo_update(adev, fpriv->prt_va, false);
		if (ret) {
			dev_dbg(adev->dev,
				"Memory eviction: handle PRT moved failed, pid %8d. Try again.\n",
				pid_nr(process_info->pid));
			goto validate_map_fail;
		}

		ret = amdgpu_vm_handle_moved(adev, peer_vm, &exec.ticket);
		if (ret) {
			pr_debug("Memory eviction: handle moved failed. Try again\n");
			dev_dbg(adev->dev,
				"Memory eviction: handle moved failed, pid %8d. Try again.\n",
				pid_nr(process_info->pid));
			goto validate_map_fail;
		}
	}