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

Author: Jonathan Gray <[email protected]>
Date:   Wed Jun  5 15:00:33 2013 +1000

radeon/winsys: correct RADEON_GEM_WAIT_IDLE use

RADEON_GEM_WAIT_IDLE is declared DRM_IOW but mesa
uses it with drmCommandWriteRead instead of drmCommandWrite
which leads to the ioctl being unmatched and returning an
error on at least OpenBSD.

Problem originally noticed in libdrm by Mark Kettenis.
Dave Airlie pointed out that mesa has the same issue.

Signed-off-by: Jonathan Gray <[email protected]>

---

 src/gallium/winsys/radeon/drm/radeon_drm_bo.c |    2 +-
 src/gallium/winsys/radeon/tools/radeon_ctx.h  |    2 +-
 2 files changed, 2 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 6ec1713..bcd4b27 100644
--- a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
+++ b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
@@ -167,7 +167,7 @@ static void radeon_bo_wait(struct pb_buffer *_buf, enum 
radeon_bo_usage usage)
         struct drm_radeon_gem_wait_idle args;
         memset(&args, 0, sizeof(args));
         args.handle = bo->handle;
-        while (drmCommandWriteRead(bo->rws->fd, DRM_RADEON_GEM_WAIT_IDLE,
+        while (drmCommandWrite(bo->rws->fd, DRM_RADEON_GEM_WAIT_IDLE,
                                    &args, sizeof(args)) == -EBUSY);
     }
 }
diff --git a/src/gallium/winsys/radeon/tools/radeon_ctx.h 
b/src/gallium/winsys/radeon/tools/radeon_ctx.h
index c2967ff..1eecfd5 100644
--- a/src/gallium/winsys/radeon/tools/radeon_ctx.h
+++ b/src/gallium/winsys/radeon/tools/radeon_ctx.h
@@ -98,7 +98,7 @@ static void bo_wait(struct ctx *ctx, struct bo *bo)
     memset(&args, 0, sizeof(args));
     args.handle = bo->handle;
     do {
-        r = drmCommandWriteRead(ctx->fd, DRM_RADEON_GEM_WAIT_IDLE, &args, 
sizeof(args));
+        r = drmCommandWrite(ctx->fd, DRM_RADEON_GEM_WAIT_IDLE, &args, 
sizeof(args));
     } while (r == -EBUSY);
 }
 

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to