On 9/17/26 21:58, Shahyan Soltani wrote: > From: Pierre-Eric Pelloux-Prayer <[email protected]> > > Wake up the GPU while setting up user pages and validating the buffer. > > Signed-off-by: Pierre-Eric Pelloux-Prayer <[email protected]> > v2 (Shahyan): Added commit description > Signed-off-by: Shahyan Soltani <[email protected]> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c > index 6edd03647c2d..e54d30f75b2e 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c > @@ -594,11 +594,18 @@ int amdgpu_gem_userptr_ioctl(struct drm_device *dev, > void *data, > if (r) > goto user_pages_done; > > + r = pm_runtime_resume_and_get(adev->dev);
That needs to come before the BO is reserved otherwise we can deadlock. Apart from that looks good to me, Christian. > + if (r < 0) > + goto user_pages_done; > + > amdgpu_ttm_tt_set_user_pages(bo->tbo.ttm, range); > > amdgpu_bo_placement_from_domain(bo, AMDGPU_GEM_DOMAIN_GTT); > r = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx); > amdgpu_bo_unreserve(bo); > + > + pm_runtime_put_autosuspend(adev->dev); > + > if (r) > goto user_pages_done; > }
