Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e054cc39 authored by Imre Deak's avatar Imre Deak Committed by Daniel Vetter
Browse files

drm/i915: avoid premature timeouts in __wait_seqno()

At the moment wait_event_timeout/wait_event_interruptible_timeout may
time out 1 jiffy too early, as the calculated expiry time is 1 less than
needed. Besides timing out too early this also means that the
calculation of the remaining time will be incorrect and we will pass a
non-zero remaining time to user space in case of a time out. This is one
reason for the following bugzilla report:

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=64270



Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent 2554fc1f
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -1003,7 +1003,7 @@ static int __wait_seqno(struct intel_ring_buffer *ring, u32 seqno,
		wait_forever = false;
		wait_forever = false;
	}
	}


	timeout_jiffies = timespec_to_jiffies(&wait_time);
	timeout_jiffies = timespec_to_jiffies_timeout(&wait_time);


	if (WARN_ON(!ring->irq_get(ring)))
	if (WARN_ON(!ring->irq_get(ring)))
		return -ENODEV;
		return -ENODEV;