From bd14b2cf7551826c6437bbf1d8409cebd45615a5 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 13 Dec 2008 11:06:11 -0800 Subject: intel: return error status from drm_intel_gem_bo_map Applications may actually care if the mapping operation failed, so when it happens, return an error indication. errno is probably trashed by fprintf though. Signed-off-by: Keith Packard --- libdrm/intel/intel_bufmgr_gem.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'libdrm/intel/intel_bufmgr_gem.c') 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; } -- cgit v1.2.3