Mesa (master): radeon_drm_bo: explicitly check return value of drmCommandWriteRead

Julien Isorce cap at kemper.freedesktop.org
Mon Mar 20 18:04:08 UTC 2017


Module: Mesa
Branch: master
Commit: 521860b2a92bab6394546e6af8709c07e2292033
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=521860b2a92bab6394546e6af8709c07e2292033

Author: Julien Isorce <jisorce at oblong.com>
Date:   Wed Mar 15 17:40:25 2017 +0000

radeon_drm_bo: explicitly check return value of drmCommandWriteRead

CID 1313492

Signed-off-by: Julien Isorce <jisorce at oblong.com>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>

---

 src/gallium/winsys/radeon/drm/radeon_drm_bo.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
index f4ed3ce632..f6d5c8a51c 100644
--- a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
+++ b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
@@ -186,8 +186,13 @@ static enum radeon_bo_domain radeon_bo_get_initial_domain(
     args.handle = bo->handle;
     args.op = RADEON_GEM_OP_GET_INITIAL_DOMAIN;
 
-    drmCommandWriteRead(bo->rws->fd, DRM_RADEON_GEM_OP,
-                        &args, sizeof(args));
+    if (drmCommandWriteRead(bo->rws->fd, DRM_RADEON_GEM_OP,
+                            &args, sizeof(args))) {
+        fprintf(stderr, "radeon: failed to get initial domain: %p 0x%08X\n",
+                bo, bo->handle);
+        /* Default domain as returned by get_valid_domain. */
+        return RADEON_DOMAIN_VRAM_GTT;
+    }
 
     /* GEM domains and winsys domains are defined the same. */
     return get_valid_domain(args.value);




More information about the mesa-commit mailing list