On Thu, Sep 21, 2017 at 10:09:03PM +0100, Chris Wilson wrote:
> After we see our target seqno has been completed by the hw, we need to
> confirm that it still matches the request (as it may have been preempted
> before the spin completes). If the request no longer matches the target
> seqno, we need to restart the wait to reacquire that seqno.
> 
> Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursu...@intel.com>
> Cc: Michal Winiarski <michal.winiar...@intel.com>

Reviewed-by: Michał Winiarski <michal.winiar...@intel.com>

-Michał

> ---
>  drivers/gpu/drm/i915/i915_gem_request.c | 5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem_request.c 
> b/drivers/gpu/drm/i915/i915_gem_request.c
> index 813a3b546d6e..289fb08acaf5 100644
> --- a/drivers/gpu/drm/i915/i915_gem_request.c
> +++ b/drivers/gpu/drm/i915/i915_gem_request.c
> @@ -1040,12 +1040,9 @@ bool __i915_spin_request(const struct 
> drm_i915_gem_request *req,
>       irq = atomic_read(&engine->irq_count);
>       timeout_us += local_clock_us(&cpu);
>       do {
> -             if (seqno != i915_gem_request_global_seqno(req))
> -                     break;
> -
>               if (i915_seqno_passed(intel_engine_get_seqno(req->engine),
>                                     seqno))
> -                     return true;
> +                     return seqno == i915_gem_request_global_seqno(req);
>  
>               /* Seqno are meant to be ordered *before* the interrupt. If
>                * we see an interrupt without a corresponding seqno advance,
> -- 
> 2.14.1
> 
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to