mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-16 07:51:31 -04:00
drm/amdkfd: check if vm ready in svm map and unmap to gpu
Don't map or unmap svm range to gpu if vm is not ready for updates. Why: DRM entity may already be killed when the svm worker try to update gpu vm. Signed-off-by: YuanShang <YuanShang.Mao@amd.com> Reviewed-by: Philip Yang <philip.yang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> (cherry picked from commit 55f8e366c326980174a4f2b9501b524d8eb25135)
This commit is contained in:
@@ -1366,6 +1366,12 @@ svm_range_unmap_from_gpu(struct amdgpu_device *adev, struct amdgpu_vm *vm,
|
||||
|
||||
pr_debug("CPU[0x%llx 0x%llx] -> GPU[0x%llx 0x%llx]\n", start, last,
|
||||
gpu_start, gpu_end);
|
||||
|
||||
if (!amdgpu_vm_ready(vm)) {
|
||||
pr_debug("VM not ready, canceling unmap\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
return amdgpu_vm_update_range(adev, vm, false, true, true, false, NULL, gpu_start,
|
||||
gpu_end, init_pte_value, 0, 0, NULL, NULL,
|
||||
fence);
|
||||
@@ -1443,6 +1449,11 @@ svm_range_map_to_gpu(struct kfd_process_device *pdd, struct svm_range *prange,
|
||||
pr_debug("svms 0x%p [0x%lx 0x%lx] readonly %d\n", prange->svms,
|
||||
last_start, last_start + npages - 1, readonly);
|
||||
|
||||
if (!amdgpu_vm_ready(vm)) {
|
||||
pr_debug("VM not ready, canceling map\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
for (i = offset; i < offset + npages; i++) {
|
||||
uint64_t gpu_start;
|
||||
uint64_t gpu_end;
|
||||
|
||||
Reference in New Issue
Block a user