From f7168feb9b9ccad38b0cf2463eccba45f35caff5 Mon Sep 17 00:00:00 2001 From: Christian Gmeiner Date: Thu, 16 Sep 2021 18:50:42 +0200 Subject: [PATCH] etnaviv: fix leak of the screen hash table Signed-off-by: Christian Gmeiner Tested-by: Philipp Zabel p.zabel@pengutronix.de Reviewed-by: Simon Ser Part-of: --- src/gallium/winsys/etnaviv/drm/etnaviv_drm_winsys.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/gallium/winsys/etnaviv/drm/etnaviv_drm_winsys.c b/src/gallium/winsys/etnaviv/drm/etnaviv_drm_winsys.c index 03d61623e7a..1eb5b3c6947 100644 --- a/src/gallium/winsys/etnaviv/drm/etnaviv_drm_winsys.c +++ b/src/gallium/winsys/etnaviv/drm/etnaviv_drm_winsys.c @@ -142,6 +142,11 @@ etna_drm_screen_destroy(struct pipe_screen *pscreen) if (destroy) { int fd = etna_device_fd(screen->dev); _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(&etna_screen_mutex);