drm/i915/guc: Release submit fence from an irq_work
A subsequent patch will flip the locking hierarchy from ce->guc_state.lock -> sched_engine->lock to sched_engine->lock -> ce->guc_state.lock. As such we need to release the submit fence for a request from an IRQ to break a lock inversion - i.e. the fence must be release went holding ce->guc_state.lock and the releasing of the can acquire sched_engine->lock. v2: (Daniele) - Delete request from list before calling irq_work_queue Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com> Signed-off-by: Matthew Brost <matthew.brost@intel.com> Signed-off-by: John Harrison <John.C.Harrison@Intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20210909164744.31249-16-matthew.brost@intel.com
This commit is contained in:
committed by
John Harrison
parent
ae36b62927
commit
b0d83888a3
@@ -218,6 +218,11 @@ struct i915_request {
|
||||
};
|
||||
struct llist_head execute_cb;
|
||||
struct i915_sw_fence semaphore;
|
||||
/**
|
||||
* @submit_work: complete submit fence from an IRQ if needed for
|
||||
* locking hierarchy reasons.
|
||||
*/
|
||||
struct irq_work submit_work;
|
||||
|
||||
/*
|
||||
* A list of everyone we wait upon, and everyone who waits upon us.
|
||||
|
||||
Reference in New Issue
Block a user