diff --git a/.pick_status.json b/.pick_status.json index 9c2e450e6c8..53f4beda572 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -2623,7 +2623,7 @@ "description": "frontends/va: Fix missing unlock", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "af695149e96bf276b52ff3715076ddc847c6b959" }, diff --git a/src/gallium/frontends/va/picture.c b/src/gallium/frontends/va/picture.c index 3a558f55b94..58ccfee0f1b 100644 --- a/src/gallium/frontends/va/picture.c +++ b/src/gallium/frontends/va/picture.c @@ -877,8 +877,10 @@ vlVaEndPicture(VADriverContextP ctx, VAContextID context_id) mtx_lock(&drv->mutex); surf = handle_table_get(drv->htab, output_id); - if (!surf || !surf->buffer) + if (!surf || !surf->buffer) { + mtx_unlock(&drv->mutex); return VA_STATUS_ERROR_INVALID_SURFACE; + } if (apply_av1_fg) { surf->ctx = context_id;