[PATCH] fix: drm/vmwgfx: vmw_user_shader_alloc: fix base object refcount leak on ttm_base_object_init failure

From: WenTao Liang

Date: Fri Jun 26 2026 - 11:06:06 EST


ttm_base_object_init unconditionally acquires a base object reference via
kref_init. When it fails, the error path in vmw_user_shader_alloc only
calls vmw_resource_unreference but never calls ttm_base_object_unref to
release the base object reference, causing a refcount leak.

Add ttm_base_object_unref in the error path to properly release the base
object reference when ttm_base_object_init fails.

Cc: stable@xxxxxxxxxxxxxxx
Fixes: 0b8762e997df ("drm/ttm, drm/vmwgfx: Move the lock- and object functionality to the vmwgfx driver")
Signed-off-by: WenTao Liang <vulab@xxxxxxxxxxx>
---
drivers/gpu/drm/vmwgfx/vmwgfx_shader.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c b/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c
index eca4e3e97eb4..d82ec43c8901 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c
@@ -724,6 +724,7 @@ static int vmw_user_shader_alloc(struct vmw_private *dev_priv,

if (unlikely(ret != 0)) {
vmw_resource_unreference(&tmp);
+ ttm_base_object_unref(&ushader->base);
goto out_err;
}

--
2.39.5 (Apple Git-154)