Mesa (main): virgl:Fix the leak of hw_res used as fence

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu May 27 04:40:36 UTC 2021


Module: Mesa
Branch: main
Commit: 4a3c715bb4654ae2c8b61bfb8af8dadde60d675a
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4a3c715bb4654ae2c8b61bfb8af8dadde60d675a

Author: cheyang <cheyang at bytedance.com>
Date:   Wed May 26 20:44:57 2021 +0800

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 at bytedance.com>
Reviewed-by: Chia-I Wu <olvaffe at gmail.com>
Reviewed-by: Lepton Wu <lepton at 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);
    }



More information about the mesa-commit mailing list