Skip to content

Commit 4ee056f

Browse files
committed
drm/i915: Cancel pending execlist tasklet upon wedging
Highly unlikely, but if the stop_machine() did suspend the tasklet, we want to make sure that when it wakes it finds there is nothing to do. Otherwise, it will loudly complain that the ELSP port tracking no longer matches the hardware, and we will be mightly confused. Signed-off-by: Chris Wilson <[email protected]> Cc: Tvrtko Ursulin <[email protected]> Link: http://patchwork.freedesktop.org/patch/msgid/[email protected] Reviewed-by: Tvrtko Ursulin <[email protected]>
1 parent 0caf81b commit 4ee056f

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

drivers/gpu/drm/i915/i915_gem.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3092,6 +3092,13 @@ static void engine_set_wedged(struct intel_engine_cs *engine)
30923092
engine->execlist_first = NULL;
30933093

30943094
spin_unlock_irqrestore(&engine->timeline->lock, flags);
3095+
3096+
/* The port is checked prior to scheduling a tasklet, but
3097+
* just in case we have suspended the tasklet to do the
3098+
* wedging make sure that when it wakes, it decides there
3099+
* is no work to do by clearing the irq_posted bit.
3100+
*/
3101+
clear_bit(ENGINE_IRQ_EXECLIST, &engine->irq_posted);
30953102
}
30963103
}
30973104

0 commit comments

Comments
 (0)