Add lock before accessing dma_fence_is_signaled_locked. Signed-off-by: Arunpravin Paneer Selvam <arunpravin.paneersel...@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