diff options
author | Jesse.Zhang <Jesse.Zhang@amd.com> | 2025-09-24 16:00:06 +0800 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2025-09-25 15:53:23 -0400 |
commit | b8ae2640f9acd4f411c9227d2493755d03fe440a (patch) | |
tree | a6412baf5ca246b3e207e65a4017b426ca0abf05 /rust/helpers/page.c | |
parent | 45da20e00d5da842e17dfc633072b127504f0d0e (diff) |
drm/amdgpu: Fix fence signaling race condition in userqueue
This commit fixes a potential race condition in the userqueue fence
signaling mechanism by replacing dma_fence_is_signaled_locked() with
dma_fence_is_signaled().
The issue occurred because:
1. dma_fence_is_signaled_locked() should only be used when holding
the fence's individual lock, not just the fence list lock
2. Using the locked variant without the proper fence lock could lead
to double-signaling scenarios:
- Hardware completion signals the fence
- Software path also tries to signal the same fence
By using dma_fence_is_signaled() instead, we properly handle the
locking hierarchy and avoid the race condition while still maintaining
the necessary synchronization through the fence_list_lock.
v2: drop the comment (Christian)
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Jesse Zhang <Jesse.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'rust/helpers/page.c')
0 files changed, 0 insertions, 0 deletions