@@ -1148,17 +1148,19 @@ static bool missed_irq(struct drm_i915_private *dev_priv,
static int __i915_spin_request(struct drm_i915_gem_request *req)
{
- unsigned long timeout;
+ ktime_t start, end;
if (i915_gem_request_get_ring(req)->irq_refcount)
return -EBUSY;
- timeout = jiffies + 1;
+ start = ktime_get();
+ end.tv64 = start.tv64;
+ ktime_add_us(end, 1);
while (!need_resched()) {
if (i915_gem_request_completed(req, true))
return 0;
- if (time_after_eq(jiffies, timeout))
+ if (ktime_after(start, end))
break;
cpu_relax_lowlatency();