[PATCH 2/5] drm/amdgpu/userq: Add lock before accessing dma_fence_is_signaled_locked

Arunpravin Paneer Selvam Arunpravin.PaneerSelvam at amd.com
Wed Apr 9 05:48:27 UTC 2025


Add lock before accessing dma_fence_is_signaled_locked.

Signed-off-by: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam at amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
index 24d19b920100..d5b35b5df527 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
@@ -259,11 +259,13 @@ static int amdgpu_userq_fence_create(struct amdgpu_usermode_queue *userq,
 
 	/* Check if hardware has already processed the job */
 	spin_lock_irqsave(&fence_drv->fence_list_lock, flags);
+	spin_lock_nested(fence->lock, SINGLE_DEPTH_NESTING);
 	if (!dma_fence_is_signaled_locked(fence))
 		list_add_tail(&userq_fence->link, &fence_drv->fences);
 	else
 		dma_fence_put(fence);
 
+	spin_unlock(fence->lock);
 	spin_unlock_irqrestore(&fence_drv->fence_list_lock, flags);
 
 	*f = fence;
-- 
2.43.0



More information about the amd-gfx mailing list