mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
drm/i915/execlists: Ensure the tasklet is decoupled upon shutdown
As we only cancel the timers asynchronously, they may still be running on another CPU as we shutdown, raising one last softirq. So be safe and make sure the tasklet is flushed before destroying the engine's memory. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20191129172542.1222810-1-chris@chris-wilson.co.uk
This commit is contained in:
parent
7ce596a803
commit
97c1635397
@ -3777,8 +3777,18 @@ void intel_execlists_set_default_submission(struct intel_engine_cs *engine)
|
||||
engine->flags |= I915_ENGINE_HAS_RELATIVE_MMIO;
|
||||
}
|
||||
|
||||
static void execlists_shutdown(struct intel_engine_cs *engine)
|
||||
{
|
||||
/* Synchronise with residual timers and any softirq they raise */
|
||||
del_timer_sync(&engine->execlists.timer);
|
||||
del_timer_sync(&engine->execlists.preempt);
|
||||
tasklet_kill(&engine->execlists.tasklet);
|
||||
}
|
||||
|
||||
static void execlists_destroy(struct intel_engine_cs *engine)
|
||||
{
|
||||
execlists_shutdown(engine);
|
||||
|
||||
intel_engine_cleanup_common(engine);
|
||||
lrc_destroy_wa_ctx(engine);
|
||||
kfree(engine);
|
||||
|
Loading…
Reference in New Issue
Block a user