diff --git a/.pick_status.json b/.pick_status.json index 4ab3fca134b..e33a2f5ff83 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1014,7 +1014,7 @@ "description": "zink: unlock instance mutex if creation fails", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "015eda4a4186c75538a0aa915e380c5ce5863319", "notes": null diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index a7fe1d683eb..68fb77a4bd7 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -3279,8 +3279,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); }