mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-23 09:39:50 +07:00
drm/i915: Update the breadcrumb interrupt counter before enabling
In order to close a race with a long running hangcheck comparing a stale interrupt counter with a just started waiter, we need to first bump the counter as we start the fresh wait. References: https://bugs.freedesktop.org/show_bug.cgi?id=96974 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1469351421-13493-2-git-send-email-chris@chris-wilson.co.uk
This commit is contained in:
parent
2529d57050
commit
f527a38ee7
@ -51,6 +51,13 @@ static void irq_enable(struct intel_engine_cs *engine)
|
||||
*/
|
||||
engine->breadcrumbs.irq_posted = true;
|
||||
|
||||
/* Make sure the current hangcheck doesn't falsely accuse a just
|
||||
* started irq handler from missing an interrupt (because the
|
||||
* interrupt count still matches the stale value from when
|
||||
* the irq handler was disabled, many hangchecks ago).
|
||||
*/
|
||||
engine->breadcrumbs.irq_wakeups++;
|
||||
|
||||
spin_lock_irq(&engine->i915->irq_lock);
|
||||
engine->irq_enable(engine);
|
||||
spin_unlock_irq(&engine->i915->irq_lock);
|
||||
|
Loading…
Reference in New Issue
Block a user