diff options
| -rw-r--r-- | libdrm/intel/intel_bufmgr_gem.c | 4 | 
1 files changed, 4 insertions, 0 deletions
diff --git a/libdrm/intel/intel_bufmgr_gem.c b/libdrm/intel/intel_bufmgr_gem.c index c94f82e2..dbce9385 100644 --- a/libdrm/intel/intel_bufmgr_gem.c +++ b/libdrm/intel/intel_bufmgr_gem.c @@ -544,6 +544,8 @@ drm_intel_gem_bo_map(drm_intel_bo *bo, int write_enable)  	    fprintf(stderr, "%s:%d: Error mapping buffer %d (%s): %s .\n",  		    __FILE__, __LINE__,  		    bo_gem->gem_handle, bo_gem->name, strerror(errno)); +	    pthread_mutex_unlock(&bufmgr_gem->lock); +	    return ret;  	}  	bo_gem->virtual = (void *)(uintptr_t)mmap_arg.addr_ptr;  	bo_gem->swrast = 0; @@ -566,6 +568,8 @@ drm_intel_gem_bo_map(drm_intel_bo *bo, int write_enable)  	if (ret != 0) {  	    fprintf (stderr, "%s:%d: Error setting swrast %d: %s\n",  		     __FILE__, __LINE__, bo_gem->gem_handle, strerror (errno)); +	    pthread_mutex_unlock(&bufmgr_gem->lock); +	    return ret;  	}  	bo_gem->swrast = 1;      }  | 
