On 3/26/26 11:36, YuanShang wrote:
> 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 <[email protected]>

Looks correct to me, but I think somebody else already added those checks.

@Philip is that correct? If not please help reviewing the patch.

Thanks,
Christian.

> ---
>  drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c 
> b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
> index 8167fe642341..7f905a7805fa 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
> @@ -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;

Reply via email to