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

Author: Christian Gmeiner <[email protected]>
Date:   Thu Sep 16 18:52:39 2021 +0200

lima: fix leak of the screen hash table

Signed-off-by: Christian Gmeiner <[email protected]>
Reviewed-by: Erico Nunes <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12902>

---

 src/gallium/winsys/lima/drm/lima_drm_winsys.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/gallium/winsys/lima/drm/lima_drm_winsys.c 
b/src/gallium/winsys/lima/drm/lima_drm_winsys.c
index b23f1113776..9c8cd933e79 100644
--- a/src/gallium/winsys/lima/drm/lima_drm_winsys.c
+++ b/src/gallium/winsys/lima/drm/lima_drm_winsys.c
@@ -47,8 +47,14 @@ lima_drm_screen_destroy(struct pipe_screen *pscreen)
 
    mtx_lock(&lima_screen_mutex);
    destroy = --screen->refcnt == 0;
-   if (destroy)
+   if (destroy) {
       _mesa_hash_table_remove_key(fd_tab, intptr_to_pointer(fd));
+
+      if (!fd_tab->entries) {
+         _mesa_hash_table_destroy(fd_tab, NULL);
+         fd_tab = NULL;
+      }
+   }
    mtx_unlock(&lima_screen_mutex);
 
    if (destroy) {

Reply via email to