[PATCH] drm/drm_mode: drop property ref-counter outside of deadlock retry loop
From: Sergey Senozhatsky
Date: Tue Jun 23 2026 - 03:37:25 EST
set_property_legacy() increments property ref-counter before
DRM_MODESET_LOCK_ALL_BEGIN()'s modeset_lock_retry label.
However the ref-counter decrement is misplaced - it's performed
before DRM_MODESET_LOCK_ALL_END() checks for -EDEADLK and jumps
to modeset_lock_retry label, creating ref-counter underflow.
Fixes: 9bcaa3fe58ab ("drm: Replace drm_modeset_lock/unlock_all with DRM_MODESET_LOCK_ALL_* helpers")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Sergey Senozhatsky <senozhatsky@xxxxxxxxxxxx>
---
drivers/gpu/drm/drm_mode_object.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_mode_object.c b/drivers/gpu/drm/drm_mode_object.c
index 21fc9deda437..11f0044f4782 100644
--- a/drivers/gpu/drm/drm_mode_object.c
+++ b/drivers/gpu/drm/drm_mode_object.c
@@ -549,8 +549,8 @@ static int set_property_legacy(struct drm_mode_object *obj,
prop, prop_value);
break;
}
- drm_property_change_valid_put(prop, ref);
DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);
+ drm_property_change_valid_put(prop, ref);
return ret;
}
--
2.55.0.rc0.786.g65d90a0328-goog