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

Commit dda4b8f7 authored by Chris Wilson's avatar Chris Wilson Committed by Joonas Lahtinen
Browse files

drm/i915: Skip switch-to-kernel-context on suspend when wedged



If the HW is already wedged, attempting to submit a request will
generate an -EIO. If we tried this during suspend, we would abort
whereas all we want to do is to go sleep and throw away the corrupt
state.

Fixes: 5ab57c70 ("drm/i915: Flush logical context image out to memory upon suspend")
Testcase: igt/gem_eio/suspend
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: default avatarJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171130102951.14965-1-chris@chris-wilson.co.uk


(cherry picked from commit ecf73eb2)
Signed-off-by: default avatarJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
parent ae64f9bd
Loading
Loading
Loading
Loading
+11 −9
Original line number Diff line number Diff line
@@ -4712,6 +4712,7 @@ int i915_gem_suspend(struct drm_i915_private *dev_priv)
	 * state. Fortunately, the kernel_context is disposable and we do
	 * not rely on its state.
	 */
	if (!i915_terminally_wedged(&dev_priv->gpu_error)) {
		ret = i915_gem_switch_to_kernel_context(dev_priv);
		if (ret)
			goto err_unlock;
@@ -4723,6 +4724,7 @@ int i915_gem_suspend(struct drm_i915_private *dev_priv)
			goto err_unlock;

		assert_kernel_context_is_current(dev_priv);
	}
	i915_gem_contexts_lost(dev_priv);
	mutex_unlock(&dev->struct_mutex);