[PATCH] drm/vmwgfx: Fix surface reference leak in crc_generate_worker()

Wentao Liang posted 1 patch 1 week, 1 day ago
drivers/gpu/drm/vmwgfx/vmwgfx_vkms.c | 1 +
1 file changed, 1 insertion(+)
[PATCH] drm/vmwgfx: Fix surface reference leak in crc_generate_worker()
Posted by Wentao Liang 1 week, 1 day ago
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@vger.kernel.org
Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
---
 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