Public

> -----Original Message-----
> From: amd-gfx <[email protected]> On Behalf Of David
> Francis
> Sent: Thursday, May 14, 2026 10:37 AM
> To: [email protected]
> Cc: Francis, David <[email protected]>
> Subject: [PATCH] drm/amdkfd: Check for pdd drm file first in CRIU restore
> path
>
> CRIU restore ioctls are meant to be called by CRIU with no existing drm file.
> There's an error path for if the drm fiel unexpectedly exists. It was 
> positioned
> so it was missing a fput(drm_file).
>
> Do that check earlier, as soon as we have the pdd.
>
> Signed-off-by: David Francis <[email protected]>

Reviewed-by: Alex Deucher <[email protected]>

> ---
>  drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
> b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
> index 84b9bde7f371..db9223e00fd8 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
> @@ -2377,6 +2377,11 @@ static int criu_restore_devices(struct kfd_process
> *p,
>                       ret = -EINVAL;
>                       goto exit;
>               }
> +
> +             if (pdd->drm_file) {
> +                     ret = -EINVAL;
> +                     goto exit;
> +             }
>               pdd->user_gpu_id = device_buckets[i].user_gpu_id;
>
>               drm_file = fget(device_buckets[i].drm_fd); @@ -2387,11
> +2392,6 @@ static int criu_restore_devices(struct kfd_process *p,
>                       goto exit;
>               }
>
> -             if (pdd->drm_file) {
> -                     ret = -EINVAL;
> -                     goto exit;
> -             }
> -
>               /* create the vm using render nodes for kfd pdd */
>               if (kfd_process_device_init_vm(pdd, drm_file)) {
>                       pr_err("could not init vm for given pdd\n");
> --
> 2.34.1

Reply via email to