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

Commit 15cbf007 authored by Chris Wilson's avatar Chris Wilson
Browse files

drm/i915: Wait for old resets before applying debugfs/i915_wedged



Since we use the debugfs to recover the device after modifying the
i915.reset parameter, we need to be sure that we apply the reset and not
piggy-back onto a concurrent one in order for the parameter to take
effect.

Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarMika Kuoppala <mika.kuoppala@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190208153708.20023-5-chris@chris-wilson.co.uk
parent 13e87536
Loading
Loading
Loading
Loading
+3 −7
Original line number Diff line number Diff line
@@ -3861,13 +3861,9 @@ i915_wedged_set(void *data, u64 val)
{
	struct drm_i915_private *i915 = data;

	/*
	 * There is no safeguard against this debugfs entry colliding
	 * with the hangcheck calling same i915_handle_error() in
	 * parallel, causing an explosion. For now we assume that the
	 * test harness is responsible enough not to inject gpu hangs
	 * while it is writing to 'i915_wedged'
	 */
	/* Flush any previous reset before applying for a new one */
	wait_event(i915->gpu_error.reset_queue,
		   !test_bit(I915_RESET_BACKOFF, &i915->gpu_error.flags));

	i915_handle_error(i915, val, I915_ERROR_CAPTURE,
			  "Manually set wedged engine mask = %llx", val);