drm/i915: Fix regression in ba3d8d749b
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 14 Sep 2010 09:22:23 +0000 (10:22 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 14 Sep 2010 09:35:43 +0000 (10:35 +0100)
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>
drivers/gpu/drm/i915/i915_gem.c

index 328f8c9ee9660a2eddf45e500712a78975ba8a8a..4a0d85c78d47ae55a8b21deaa8906f914753a11e 100644 (file)
@@ -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;
 }