]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu/userq: cancel reset work while tear down in progress
authorSunil Khatri <sunil.khatri@amd.com>
Tue, 12 May 2026 09:22:40 +0000 (14:52 +0530)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 19 May 2026 16:07:52 +0000 (12:07 -0400)
While tear down of a userq_mgr is happening when all the queues
are free we should cancel any reset work if pending before exiting.

Signed-off-by: Sunil Khatri <sunil.khatri@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 160164609f71f774c4f661227a9b7a370a86b112)

drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c

index aa6d4c71fba69d18d50e667d1cd673b85f7b7749..49e9c75d3151efe5b939c7ba60fc36e49ac9aea3 100644 (file)
@@ -1346,6 +1346,14 @@ void amdgpu_userq_mgr_fini(struct amdgpu_userq_mgr *userq_mgr)
        }
 
        xa_destroy(&userq_mgr->userq_xa);
+
+       /*
+        * Drain any in-flight reset_work. By this point all queues are freed
+        * and userq_count is 0, so if reset_work starts now it exits early.
+        * We still need to wait in case it was already executing gpu_recover.
+        */
+       cancel_work_sync(&userq_mgr->reset_work);
+
        mutex_destroy(&userq_mgr->userq_mutex);
 }