diff --git a/src/gallium/frontends/va/picture.c b/src/gallium/frontends/va/picture.c index e7d445470e0..fdce7d66649 100644 --- a/src/gallium/frontends/va/picture.c +++ b/src/gallium/frontends/va/picture.c @@ -925,8 +925,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;