Module: Mesa Branch: master Commit: 89975e29d33d93021a303b2b41b56de65e854843 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=89975e29d33d93021a303b2b41b56de65e854843
Author: Marek Olšák <[email protected]> Date: Wed Jan 4 11:42:13 2017 +0100 va: call texture_get_handle while the mutex is being held The context may be used by texture_get_handle. Reviewed-by: Christian König <[email protected]> Cc: 13.0 <[email protected]> --- src/gallium/state_trackers/va/buffer.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/gallium/state_trackers/va/buffer.c b/src/gallium/state_trackers/va/buffer.c index 3c9b9d1..93f012c 100644 --- a/src/gallium/state_trackers/va/buffer.c +++ b/src/gallium/state_trackers/va/buffer.c @@ -297,15 +297,18 @@ vlVaAcquireBufferHandle(VADriverContextP ctx, VABufferID buf_id, pipe_mutex_lock(drv->mutex); drv->pipe->flush(drv->pipe, NULL, 0); - pipe_mutex_unlock(drv->mutex); memset(&whandle, 0, sizeof(whandle)); whandle.type = DRM_API_HANDLE_TYPE_FD; if (!screen->resource_get_handle(screen, drv->pipe, buf->derived_surface.resource, - &whandle, PIPE_HANDLE_USAGE_READ_WRITE)) + &whandle, PIPE_HANDLE_USAGE_READ_WRITE)) { + pipe_mutex_unlock(drv->mutex); return VA_STATUS_ERROR_INVALID_BUFFER; + } + + pipe_mutex_unlock(drv->mutex); buf_info->handle = (intptr_t)whandle.handle; break; _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
