]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: Reorder semaphore deadlock check
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 6 Jun 2014 09:22:29 +0000 (10:22 +0100)
committerJani Nikula <jani.nikula@intel.com>
Wed, 11 Jun 2014 08:06:43 +0000 (11:06 +0300)
commita743dbe61e94ab3e73cbaa2d6ae88ddf356b9668
tree594dce46be8caef7687d138cfc21ef580da6f01d
parent6ad217baf7a43f4b68cd84db47ac585858b8a01f
drm/i915: Reorder semaphore deadlock check

If a semaphore is waiting on another ring, which in turn happens to be
waiting on the first ring, but that second semaphore has been signalled,
we will be able to kick the second ring and so can treat the first ring
as a valid WAIT and not as HUNG.

v2: Be paranoid and cap the potential recursion depth whilst visiting
the semaphore signallers. (Mika)

References: https://bugs.freedesktop.org/show_bug.cgi?id=54226
References: https://bugs.freedesktop.org/show_bug.cgi?id=75502
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: stable@vger.kernel.org
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/i915_irq.c
drivers/gpu/drm/i915/intel_ringbuffer.h