| 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 |
| |