drm/i915: Wait for all fences before installing an exclusive clflush fence
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 23 Mar 2017 08:57:58 +0000 (08:57 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 23 Mar 2017 12:02:53 +0000 (12:02 +0000)
Ensure that before we overwrite the reservation_object with our
exclusive fence for the pending clflush operation, that we do wait upon
all the fences in the current reservation_object.

Fixes: 57822dc6b9cf ("drm/i915: Perform object clflushing asynchronously")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Matthew Auld <matthew.auld@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170323085758.11695-1-chris@chris-wilson.co.uk
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
drivers/gpu/drm/i915/i915_gem_clflush.c

index d925fb582ba7815fd365ae86c4f6d0718676aace..ffd01e02fe94b536e36f58672b5ccfce8a6e9a9f 100644 (file)
@@ -168,7 +168,7 @@ void i915_gem_clflush_object(struct drm_i915_gem_object *obj,
 
                i915_sw_fence_await_reservation(&clflush->wait,
                                                obj->resv, NULL,
-                                               false, I915_FENCE_TIMEOUT,
+                                               true, I915_FENCE_TIMEOUT,
                                                GFP_KERNEL);
 
                reservation_object_lock(obj->resv, NULL);