* [PATCH 6.6.y] drm/radeon: delete radeon_fence_process in is_signaled, no deadlock @ 2026-02-02 7:58 Li hongliang 2026-02-03 14:50 ` gregkh 0 siblings, 1 reply; 3+ messages in thread From: Li hongliang @ 2026-02-02 7:58 UTC (permalink / raw) To: gregkh, stable, rbmccav Cc: patches, linux-kernel, alexander.deucher, christian.koenig, Xinhui.Pan, airlied, daniel, amd-gfx, dri-devel From: Robert McClinton <rbmccav@gmail.com> [ Upstream commit 9eb00b5f5697bd56baa3222c7a1426fa15bacfb5 ] Delete the attempt to progress the queue when checking if fence is signaled. This avoids deadlock. dma-fence_ops::signaled can be called with the fence lock in unknown state. For radeon, the fence lock is also the wait queue lock. This can cause a self deadlock when signaled() tries to make forward progress on the wait queue. But advancing the queue is unneeded because incorrectly returning false from signaled() is perfectly acceptable. Link: https://github.com/brave/brave-browser/issues/49182 Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4641 Cc: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Robert McClinton <rbmccav@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> (cherry picked from commit 527ba26e50ec2ca2be9c7c82f3ad42998a75d0db) Cc: stable@vger.kernel.org [ Minor conflict resolved. ] Signed-off-by: Li hongliang <1468888505@139.com> --- drivers/gpu/drm/radeon/radeon_fence.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/drivers/gpu/drm/radeon/radeon_fence.c b/drivers/gpu/drm/radeon/radeon_fence.c index 6d5e828fa39e..1462837fda5a 100644 --- a/drivers/gpu/drm/radeon/radeon_fence.c +++ b/drivers/gpu/drm/radeon/radeon_fence.c @@ -362,14 +362,6 @@ static bool radeon_fence_is_signaled(struct dma_fence *f) return true; } - if (down_read_trylock(&rdev->exclusive_lock)) { - radeon_fence_process(rdev, ring); - up_read(&rdev->exclusive_lock); - - if (atomic64_read(&rdev->fence_drv[ring].last_seq) >= seq) { - return true; - } - } return false; } -- 2.34.1 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Patch "drm/radeon: delete radeon_fence_process in is_signaled, no deadlock" has been added to the 6.6-stable tree 2026-02-02 7:58 [PATCH 6.6.y] drm/radeon: delete radeon_fence_process in is_signaled, no deadlock Li hongliang @ 2026-02-03 14:50 ` gregkh 0 siblings, 0 replies; 3+ messages in thread From: gregkh @ 2026-02-03 14:50 UTC (permalink / raw) To: 1468888505, Xinhui.Pan, airlied, alexander.deucher, amd-gfx, christian.koenig, daniel, dri-devel, gregkh, patches, rbmccav Cc: stable-commits This is a note to let you know that I've just added the patch titled drm/radeon: delete radeon_fence_process in is_signaled, no deadlock to the 6.6-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: drm-radeon-delete-radeon_fence_process-in-is_signaled-no-deadlock.patch and it can be found in the queue-6.6 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@vger.kernel.org> know about it. From 1468888505@139.com Mon Feb 2 08:58:36 2026 From: Li hongliang <1468888505@139.com> Date: Mon, 2 Feb 2026 15:58:31 +0800 Subject: drm/radeon: delete radeon_fence_process in is_signaled, no deadlock To: gregkh@linuxfoundation.org, stable@vger.kernel.org, rbmccav@gmail.com Cc: patches@lists.linux.dev, linux-kernel@vger.kernel.org, alexander.deucher@amd.com, christian.koenig@amd.com, Xinhui.Pan@amd.com, airlied@gmail.com, daniel@ffwll.ch, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Message-ID: <20260202075831.947537-1-1468888505@139.com> From: Robert McClinton <rbmccav@gmail.com> [ Upstream commit 9eb00b5f5697bd56baa3222c7a1426fa15bacfb5 ] Delete the attempt to progress the queue when checking if fence is signaled. This avoids deadlock. dma-fence_ops::signaled can be called with the fence lock in unknown state. For radeon, the fence lock is also the wait queue lock. This can cause a self deadlock when signaled() tries to make forward progress on the wait queue. But advancing the queue is unneeded because incorrectly returning false from signaled() is perfectly acceptable. Link: https://github.com/brave/brave-browser/issues/49182 Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4641 Cc: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Robert McClinton <rbmccav@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> (cherry picked from commit 527ba26e50ec2ca2be9c7c82f3ad42998a75d0db) Cc: stable@vger.kernel.org [ Minor conflict resolved. ] Signed-off-by: Li hongliang <1468888505@139.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- drivers/gpu/drm/radeon/radeon_fence.c | 8 -------- 1 file changed, 8 deletions(-) --- a/drivers/gpu/drm/radeon/radeon_fence.c +++ b/drivers/gpu/drm/radeon/radeon_fence.c @@ -362,14 +362,6 @@ static bool radeon_fence_is_signaled(str return true; } - if (down_read_trylock(&rdev->exclusive_lock)) { - radeon_fence_process(rdev, ring); - up_read(&rdev->exclusive_lock); - - if (atomic64_read(&rdev->fence_drv[ring].last_seq) >= seq) { - return true; - } - } return false; } Patches currently in stable-queue which might be from 1468888505@139.com are queue-6.6/drm-radeon-delete-radeon_fence_process-in-is_signaled-no-deadlock.patch queue-6.6/ksmbd-fix-race-condition-in-rpc-handle-list-access.patch queue-6.6/wifi-ath11k-add-srng-lock-for-ath11k_hal_srng_-in-monitor-mode.patch queue-6.6/drm-amdgpu-replace-mutex-with-spinlock-for-rlcg-register-access-to-avoid-priority-inversion-in-sriov.patch ^ permalink raw reply [flat|nested] 3+ messages in thread
* Patch "drm/radeon: delete radeon_fence_process in is_signaled, no deadlock" has been added to the 6.6-stable tree @ 2026-02-03 14:50 ` gregkh 0 siblings, 0 replies; 3+ messages in thread From: gregkh @ 2026-02-03 14:50 UTC (permalink / raw) To: 1468888505, Xinhui.Pan, airlied, alexander.deucher, amd-gfx, christian.koenig, daniel, dri-devel, gregkh, patches, rbmccav Cc: stable-commits This is a note to let you know that I've just added the patch titled drm/radeon: delete radeon_fence_process in is_signaled, no deadlock to the 6.6-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: drm-radeon-delete-radeon_fence_process-in-is_signaled-no-deadlock.patch and it can be found in the queue-6.6 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@vger.kernel.org> know about it. From 1468888505@139.com Mon Feb 2 08:58:36 2026 From: Li hongliang <1468888505@139.com> Date: Mon, 2 Feb 2026 15:58:31 +0800 Subject: drm/radeon: delete radeon_fence_process in is_signaled, no deadlock To: gregkh@linuxfoundation.org, stable@vger.kernel.org, rbmccav@gmail.com Cc: patches@lists.linux.dev, linux-kernel@vger.kernel.org, alexander.deucher@amd.com, christian.koenig@amd.com, Xinhui.Pan@amd.com, airlied@gmail.com, daniel@ffwll.ch, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Message-ID: <20260202075831.947537-1-1468888505@139.com> From: Robert McClinton <rbmccav@gmail.com> [ Upstream commit 9eb00b5f5697bd56baa3222c7a1426fa15bacfb5 ] Delete the attempt to progress the queue when checking if fence is signaled. This avoids deadlock. dma-fence_ops::signaled can be called with the fence lock in unknown state. For radeon, the fence lock is also the wait queue lock. This can cause a self deadlock when signaled() tries to make forward progress on the wait queue. But advancing the queue is unneeded because incorrectly returning false from signaled() is perfectly acceptable. Link: https://github.com/brave/brave-browser/issues/49182 Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4641 Cc: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Robert McClinton <rbmccav@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> (cherry picked from commit 527ba26e50ec2ca2be9c7c82f3ad42998a75d0db) Cc: stable@vger.kernel.org [ Minor conflict resolved. ] Signed-off-by: Li hongliang <1468888505@139.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- drivers/gpu/drm/radeon/radeon_fence.c | 8 -------- 1 file changed, 8 deletions(-) --- a/drivers/gpu/drm/radeon/radeon_fence.c +++ b/drivers/gpu/drm/radeon/radeon_fence.c @@ -362,14 +362,6 @@ static bool radeon_fence_is_signaled(str return true; } - if (down_read_trylock(&rdev->exclusive_lock)) { - radeon_fence_process(rdev, ring); - up_read(&rdev->exclusive_lock); - - if (atomic64_read(&rdev->fence_drv[ring].last_seq) >= seq) { - return true; - } - } return false; } Patches currently in stable-queue which might be from 1468888505@139.com are queue-6.6/drm-radeon-delete-radeon_fence_process-in-is_signaled-no-deadlock.patch queue-6.6/ksmbd-fix-race-condition-in-rpc-handle-list-access.patch queue-6.6/wifi-ath11k-add-srng-lock-for-ath11k_hal_srng_-in-monitor-mode.patch queue-6.6/drm-amdgpu-replace-mutex-with-spinlock-for-rlcg-register-access-to-avoid-priority-inversion-in-sriov.patch ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-02-04 8:10 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-02-02 7:58 [PATCH 6.6.y] drm/radeon: delete radeon_fence_process in is_signaled, no deadlock Li hongliang 2026-02-03 14:50 ` Patch "drm/radeon: delete radeon_fence_process in is_signaled, no deadlock" has been added to the 6.6-stable tree gregkh 2026-02-03 14:50 ` gregkh
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.