]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/amdgpu/userq: fence wait for max time in amdgpu_userq_wait_for_signal
authorSunil Khatri <sunil.khatri@amd.com>
Thu, 26 Mar 2026 07:29:31 +0000 (12:59 +0530)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 3 Apr 2026 17:58:53 +0000 (13:58 -0400)
wait for infinite time for fences in function amdgpu_userq_wait_for_signal
and for that use dma_fence_wait(f, false);

Suggested-by: Christian König <christian.koenig@amd.com>
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>
drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c

index 744095d42fd0bd46695d9fe341cc87dc70c438e8..4323fd4c7fe1a150c3341b39a6ebc1b7e8f56e64 100644 (file)
@@ -1280,29 +1280,20 @@ void amdgpu_userq_reset_work(struct work_struct *work)
        amdgpu_device_gpu_recover(adev, NULL, &reset_context);
 }
 
-static int
+static void
 amdgpu_userq_wait_for_signal(struct amdgpu_userq_mgr *uq_mgr)
 {
        struct amdgpu_usermode_queue *queue;
        unsigned long queue_id;
-       int ret;
 
        xa_for_each(&uq_mgr->userq_xa, queue_id, queue) {
                struct dma_fence *f = queue->last_fence;
 
-               if (!f || dma_fence_is_signaled(f))
+               if (!f)
                        continue;
 
-               ret = dma_fence_wait_timeout(f, true, msecs_to_jiffies(100));
-               if (ret <= 0) {
-                       drm_file_err(uq_mgr->file, "Timed out waiting for fence=%llu:%llu\n",
-                                    f->context, f->seqno);
-
-                       return -ETIMEDOUT;
-               }
+               dma_fence_wait(f, false);
        }
-
-       return 0;
 }
 
 void