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
