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:e95433c73a
("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 commitd892e9398e
) Signed-off-by: Jani Nikula <jani.nikula@intel.com>
This commit is contained in:
parent
ddd0937362
commit
636deb5b22
|
@ -440,7 +440,7 @@ i915_gem_object_wait_reservation(struct reservation_object *resv,
|
|||
timeout = i915_gem_object_wait_fence(shared[i],
|
||||
flags, timeout,
|
||||
rps);
|
||||
if (timeout <= 0)
|
||||
if (timeout < 0)
|
||||
break;
|
||||
|
||||
dma_fence_put(shared[i]);
|
||||
|
@ -453,7 +453,7 @@ i915_gem_object_wait_reservation(struct reservation_object *resv,
|
|||
excl = reservation_object_get_excl_rcu(resv);
|
||||
}
|
||||
|
||||
if (excl && timeout > 0)
|
||||
if (excl && timeout >= 0)
|
||||
timeout = i915_gem_object_wait_fence(excl, flags, timeout, rps);
|
||||
|
||||
dma_fence_put(excl);
|
||||
|
|
Loading…
Reference in New Issue