aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/winsys/intel/drm
diff options
context:
space:
mode:
authorChia-I Wu <[email protected]>2014-11-05 15:27:42 +0800
committerChia-I Wu <[email protected]>2014-11-06 10:26:34 +0800
commit29253f44d00663c377a6b4f45511123a92abfd6a (patch)
treebfe74ba243c41c36b1c01f8020554ef5e73ed2f0 /src/gallium/winsys/intel/drm
parent93a92d2c693b9f3de75638836db3e20eaec38530 (diff)
ilo: fix intel_bo_wait() on kernel 3.17
drm_intel_gem_bo_wait() with negative timeout is broken on kernel 3.17. Signed-off-by: Chia-I Wu <[email protected]>
Diffstat (limited to 'src/gallium/winsys/intel/drm')
-rw-r--r--src/gallium/winsys/intel/drm/intel_drm_winsys.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/gallium/winsys/intel/drm/intel_drm_winsys.c b/src/gallium/winsys/intel/drm/intel_drm_winsys.c
index 7b542dcff37..9b94ac6b3a6 100644
--- a/src/gallium/winsys/intel/drm/intel_drm_winsys.c
+++ b/src/gallium/winsys/intel/drm/intel_drm_winsys.c
@@ -610,7 +610,13 @@ intel_bo_wait(struct intel_bo *bo, int64_t timeout)
{
int err;
- err = drm_intel_gem_bo_wait(gem_bo(bo), timeout);
+ if (timeout >= 0) {
+ err = drm_intel_gem_bo_wait(gem_bo(bo), timeout);
+ } else {
+ drm_intel_bo_wait_rendering(gem_bo(bo));
+ err = 0;
+ }
+
/* consider the bo idle on errors */
if (err && err != -ETIME)
err = 0;