From: Chris Wilson <chris@chris-wilson.co.uk>
Date: Tue, 14 Sep 2010 09:22:23 +0000 (+0100)
Subject: drm/i915: Fix regression in ba3d8d749b
X-Git-Tag: firefly_0821_release~7613^2~3600^2~31^2~125
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=0bc23aad3b67ca0cd7480dec0b7652d9b8686432;p=firefly-linux-kernel-4.4.55.git

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>
---

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;
 }