aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2017-02-12 16:53:43 -0500
committerJani Nikula <jani.nikula@intel.com>2017-02-16 04:59:13 -0500
commit636deb5b2277cf57bb0f5e00fc9687de9a96061e (patch)
tree8e707039cf5801b04e45b5216c50eef838b3c9b3
parentddd09373628adcbdc3f7b9098d22328834f8d772 (diff)
drm/i915: Pass timeout==0 on to i915_gem_object_wait_fence()
The i915_gem_object_wait_fence() uses an incoming timeout=0 to query whether the current fence is busy or idle, without waiting. This can be used by the wait-ioctl to implement a busy query. Fixes: e95433c73a11 ("drm/i915: Rearrange i915_wait_request() accounting with callers") Testcase: igt/gem_wait/basic-busy-write-all Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Matthew Auld <matthew.william.auld@gmail.com> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Cc: <drm-intel-fixes@lists.freedesktop.org> # v4.10-rc1+ Cc: stable@vger.kernel.org Link: http://patchwork.freedesktop.org/patch/msgid/20170212215344.16600-1-chris@chris-wilson.co.uk Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> (cherry picked from commit d892e9398ecf6defc7972a62227b77dad6be20bd) Signed-off-by: Jani Nikula <jani.nikula@intel.com>
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index c7eba361c14d..a51b134038a0 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -440,7 +440,7 @@ i915_gem_object_wait_reservation(struct reservation_object *resv,
440 timeout = i915_gem_object_wait_fence(shared[i], 440 timeout = i915_gem_object_wait_fence(shared[i],
441 flags, timeout, 441 flags, timeout,
442 rps); 442 rps);
443 if (timeout <= 0) 443 if (timeout < 0)
444 break; 444 break;
445 445
446 dma_fence_put(shared[i]); 446 dma_fence_put(shared[i]);
@@ -453,7 +453,7 @@ i915_gem_object_wait_reservation(struct reservation_object *resv,
453 excl = reservation_object_get_excl_rcu(resv); 453 excl = reservation_object_get_excl_rcu(resv);
454 } 454 }
455 455
456 if (excl && timeout > 0) 456 if (excl && timeout >= 0)
457 timeout = i915_gem_object_wait_fence(excl, flags, timeout, rps); 457 timeout = i915_gem_object_wait_fence(excl, flags, timeout, rps);
458 458
459 dma_fence_put(excl); 459 dma_fence_put(excl);