Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2c170af7 authored by Chris Wilson's avatar Chris Wilson
Browse files

drm/i915: Do request retirement before marking engines as wedged



As we declare an engine as wedged, we mark all of its active requests as
in error. However, we don't want to mark successfully completed requests
as in error, which requires us to retire those requests first.

Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170330145041.9005-1-chris@chris-wilson.co.uk
parent 17ab792a
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -2998,10 +2998,15 @@ void i915_gem_set_wedged(struct drm_i915_private *dev_priv)
	lockdep_assert_held(&dev_priv->drm.struct_mutex);
	set_bit(I915_WEDGED, &dev_priv->gpu_error.flags);

	/* Retire completed requests first so the list of inflight/incomplete
	 * requests is accurate and we don't try and mark successful requests
	 * as in error during __i915_gem_set_wedged_BKL().
	 */
	i915_gem_retire_requests(dev_priv);

	stop_machine(__i915_gem_set_wedged_BKL, dev_priv, NULL);

	i915_gem_context_lost(dev_priv);
	i915_gem_retire_requests(dev_priv);

	mod_delayed_work(dev_priv->wq, &dev_priv->gt.idle_work, 0);
}