]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/amdgpu: annotate eviction fence signaling path
authorChristian König <christian.koenig@amd.com>
Mon, 2 Feb 2026 12:06:25 +0000 (13:06 +0100)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 23 Mar 2026 18:06:01 +0000 (14:06 -0400)
Make sure lockdep sees the dependencies here.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Sunil Khatri <sunil.khatri@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_eviction_fence.c

index 55e8b9cc2f9f3227c4d1779412c8c2c5d31724ad..9ca21a32bc98bcd16f6f8957557b307a0493c7f9 100644 (file)
@@ -64,8 +64,17 @@ amdgpu_eviction_fence_suspend_worker(struct work_struct *work)
                container_of(evf_mgr, struct amdgpu_fpriv, evf_mgr);
        struct amdgpu_userq_mgr *uq_mgr = &fpriv->userq_mgr;
        struct dma_fence *ev_fence;
+       bool cookie;
 
        mutex_lock(&uq_mgr->userq_mutex);
+
+       /*
+        * This is intentionally after taking the userq_mutex since we do
+        * allocate memory while holding this lock, but only after ensuring that
+        * the eviction fence is signaled.
+        */
+       cookie = dma_fence_begin_signalling();
+
        ev_fence = amdgpu_evf_mgr_get_fence(evf_mgr);
        amdgpu_userq_evict(uq_mgr, !evf_mgr->shutdown);
 
@@ -75,6 +84,7 @@ amdgpu_eviction_fence_suspend_worker(struct work_struct *work)
         * next fence.
         */
        dma_fence_signal(ev_fence);
+       dma_fence_end_signalling(cookie);
        dma_fence_put(ev_fence);
        mutex_unlock(&uq_mgr->userq_mutex);
 }