summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkettenis <kettenis@openbsd.org>2013-11-28 20:32:20 +0000
committerkettenis <kettenis@openbsd.org>2013-11-28 20:32:20 +0000
commitbdf8954f3b70054b49396c59b2098d6b73dc01f5 (patch)
treec74306ac4d310dcfc1442220bfb804a8ba591c41
parentmark replaced flows as 'not loaded'; this can happen if both (diff)
downloadwireguard-openbsd-bdf8954f3b70054b49396c59b2098d6b73dc01f5.tar.xz
wireguard-openbsd-bdf8954f3b70054b49396c59b2098d6b73dc01f5.zip
Add short-circuit code to __wait_seqno() that's also present in Linux.
-rw-r--r--sys/dev/pci/drm/i915/i915_gem.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/pci/drm/i915/i915_gem.c b/sys/dev/pci/drm/i915/i915_gem.c
index cc130b42a4f..18c6c41858d 100644
--- a/sys/dev/pci/drm/i915/i915_gem.c
+++ b/sys/dev/pci/drm/i915/i915_gem.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: i915_gem.c,v 1.47 2013/11/27 20:13:30 kettenis Exp $ */
+/* $OpenBSD: i915_gem.c,v 1.48 2013/11/28 20:32:20 kettenis Exp $ */
/*
* Copyright (c) 2008-2009 Owain G. Ainsworth <oga@openbsd.org>
*
@@ -1027,6 +1027,9 @@ static int __wait_seqno(struct intel_ring_buffer *ring, u32 seqno,
drm_i915_private_t *dev_priv = dev->dev_private;
int ret = 0;
+ if (i915_seqno_passed(ring->get_seqno(ring, true), seqno))
+ return 0;
+
mtx_enter(&dev_priv->irq_lock);
if (!i915_seqno_passed(ring->get_seqno(ring, true), seqno)) {
ring->irq_get(ring);