summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_gem.c
diff options
context:
space:
mode:
authorChris Wilson2010-09-14 11:22:23 +0200
committerChris Wilson2010-09-14 11:35:43 +0200
commit0bc23aad3b67ca0cd7480dec0b7652d9b8686432 (patch)
tree3e4d3017719698298d94560f46f6b4c06ee62162 /drivers/gpu/drm/i915/i915_gem.c
parentdrm/i915: Consolidate flushing the display plane (diff)
downloadkernel-qcow2-linux-0bc23aad3b67ca0cd7480dec0b7652d9b8686432.tar.gz
kernel-qcow2-linux-0bc23aad3b67ca0cd7480dec0b7652d9b8686432.tar.xz
kernel-qcow2-linux-0bc23aad3b67ca0cd7480dec0b7652d9b8686432.zip
drm/i915: Fix regression in ba3d8d749b
I pulled the wrong version of the patch from Daniel Vetter which was missing the read barriers -- and the one that was causing all the trouble was from i915_gem_object_put_fence_reg(), leading to GPU hangs on gen3. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem.c')
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 328f8c9ee966..4a0d85c78d47 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -2430,12 +2430,16 @@ i915_gem_object_put_fence_reg(struct drm_gem_object *obj)
int ret;
ret = i915_gem_object_flush_gpu_write_domain(obj, false);
- if (ret != 0)
+ if (ret)
+ return ret;
+
+ ret = i915_gem_object_wait_rendering(obj);
+ if (ret)
return ret;
}
i915_gem_object_flush_gtt_write_domain(obj);
- i915_gem_clear_fence_reg (obj);
+ i915_gem_clear_fence_reg(obj);
return 0;
}