blob: bcd3f21f33370061e998ba983d4715dcaecb4163 [file] [log] [blame]
From 4a3c715bb4654ae2c8b61bfb8af8dadde60d675a Mon Sep 17 00:00:00 2001
From: cheyang <cheyang@bytedance.com>
Date: Wed, 26 May 2021 20:44:57 +0800
Subject: [PATCH] virgl:Fix the leak of hw_res used as fence
Fence destroy hw_res not dec reference.Lead leak.
Call virgl_drm_resource_reference() to release hw_res
instead of calling virgl_hw_res_destroy() directly.
Fixes: c54fb6ef3d8 ("virgl: Don't destroy resource while it's in use.")
Signed-off-by: cheyang <cheyang@bytedance.com>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Lepton Wu <lepton@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11008>
---
src/gallium/winsys/virgl/drm/virgl_drm_winsys.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/gallium/winsys/virgl/drm/virgl_drm_winsys.c b/src/gallium/winsys/virgl/drm/virgl_drm_winsys.c
index 6ff94ced519..1dd7b001925 100644
--- a/src/gallium/winsys/virgl/drm/virgl_drm_winsys.c
+++ b/src/gallium/winsys/virgl/drm/virgl_drm_winsys.c
@@ -1044,8 +1044,7 @@ static void virgl_fence_reference(struct virgl_winsys *vws,
if (vws->supports_fences) {
close(dfence->fd);
} else {
- struct virgl_drm_winsys *vdws = virgl_drm_winsys(vws);
- virgl_hw_res_destroy(vdws, dfence->hw_res);
+ virgl_drm_resource_reference(vws, &dfence->hw_res, NULL);
}
FREE(dfence);
}
--
2.32.0.rc0.204.g9fa02ecfa5-goog