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