From: Christian König Date: Thu, 22 Jan 2026 14:27:25 +0000 (+0100) Subject: drm/amdgpu: fix amdgpu_userq_evict X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=98dc529a27c57e184ab47453993ba9cfcfcec0ca;p=thirdparty%2Flinux.git drm/amdgpu: fix amdgpu_userq_evict Canceling the resume worker synchonized can deadlock because it can in turn wait for the eviction worker through the userq_mutex. Signed-off-by: Christian König Reviewed-by: Alex Deucher Reviewed-by: Sunil Khatri Signed-off-by: Alex Deucher --- diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c index 7cdff206e7f39..5619233e1b68e 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c @@ -1331,13 +1331,8 @@ amdgpu_userq_evict(struct amdgpu_userq_mgr *uq_mgr, /* Signal current eviction fence */ amdgpu_eviction_fence_signal(evf_mgr, ev_fence); - if (evf_mgr->fd_closing) { - cancel_delayed_work_sync(&uq_mgr->resume_work); - return; - } - - /* Schedule a resume work */ - schedule_delayed_work(&uq_mgr->resume_work, 0); + if (!evf_mgr->fd_closing) + schedule_delayed_work(&uq_mgr->resume_work, 0); } int amdgpu_userq_mgr_init(struct amdgpu_userq_mgr *userq_mgr, struct drm_file *file_priv,