[PATCH] drm/vmwgfx: Fix surface reference leak in crc_generate_worker()
From: Wentao Liang
Date: Wed Sep 16 2026 - 11:58:17 EST
When vmw_surface_sync() fails, crc_generate_worker() returns without
dropping the reference taken by vmw_surface_reference(), leaking the
surface on every sync failure.
Unreference the surface before returning.
Fixes: 09f34a00272d ("drm/vmwgfx: Make sure the screen surface is ref counted")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Wentao Liang <vulab@xxxxxxxxxxx>
---
drivers/gpu/drm/vmwgfx/vmwgfx_vkms.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_vkms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_vkms.c
index 5abd7f5ad2db..8c5fb552a40c 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_vkms.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_vkms.c
@@ -135,6 +135,7 @@ crc_generate_worker(struct work_struct *work)
drm_warn(
crtc->dev,
"CRC worker wasn't able to sync the crc surface!\n");
+ vmw_surface_unreference(&surf);
return;
}
--
2.34.1