drm/i915: Wait for reset to complete before returning from debugfs/i915_wedged
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 16 Mar 2017 17:13:05 +0000 (17:13 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 16 Mar 2017 17:17:15 +0000 (17:17 +0000)
Provide some serialisation between user operations by waiting for the
reset initiated by setting i915_wedged to complete.

The automatic wait here makes
        echo 1 > i915_wedged; cat i915_error_state
do the right thing, and not risk reporting "No error collected".

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170316171305.12972-4-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_debugfs.c

index d62cf2e51d1258b4d16759cc96ffcab805434327..aea51fb3851001fa1a0684abe5bd32a898779f07 100644 (file)
@@ -4135,6 +4135,10 @@ i915_wedged_set(void *data, u64 val)
        i915_handle_error(dev_priv, val,
                          "Manually setting wedged to %llu", val);
 
+       wait_on_bit(&dev_priv->gpu_error.flags,
+                   I915_RESET_HANDOFF,
+                   TASK_UNINTERRUPTIBLE);
+
        return 0;
 }