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

Reply via email to