From: Ray Wu <[email protected]>

[Why]
mutex_is_locked() only tells whether *some* task holds the mutex, not
the current one, so the existing ASSERT can silently pass when the
caller violates the contract.

[How]
Use the kernel's lockdep debugging utility (include/linux/lockdep.h)
and replace ASSERT(mutex_is_locked(&dm->dc_lock)) with
lockdep_assert_held(&dm->dc_lock), which checks the current task's
held-lock stack.

Reviewed-by: Sun peng (Leo) Li <[email protected]>
Signed-off-by: Ray Wu <[email protected]>
Signed-off-by: Ivan Lipski <[email protected]>
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_ism.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_ism.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_ism.c
index 857c22007743..1324b55c403c 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_ism.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_ism.c
@@ -459,8 +459,8 @@ void amdgpu_dm_ism_commit_event(struct amdgpu_dm_ism *ism,
        struct amdgpu_display_manager *dm = &adev->dm;
        struct dm_crtc_state *acrtc_state = to_dm_crtc_state(acrtc->base.state);
 
-       /* ISM transitions must be called with mutex acquired */
-       ASSERT(mutex_is_locked(&dm->dc_lock));
+       /* ISM transitions must be called with dc_lock held */
+       lockdep_assert_held(&dm->dc_lock);
 
        /* ISM should not run after dc is destroyed */
        ASSERT(dm->dc);
-- 
2.43.0

Reply via email to