From cb6dfc4169c2ea3390b3cd5e1fe2885c13826601 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 2 Jun 2025 13:15:06 -0400 Subject: [PATCH] zink: unlock instance mutex if creation fails avoids a deadlock Fixes: 015eda4a418 ("zink: deduplicate VkDevice and VkInstance") Part-of: --- src/gallium/drivers/zink/zink_screen.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index d67e37509e2..a6c50a7e5cf 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -3275,8 +3275,10 @@ zink_internal_create_screen(const struct pipe_screen_config *config, int64_t dev if (++instance_refcount == 1) { instance_info.loader_version = zink_get_loader_version(screen); instance = zink_create_instance(screen, &instance_info); - if (!instance) + if (!instance) { + simple_mtx_unlock(&instance_lock); goto fail; + } } else { assert(instance); }