mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 09:04:39 +02:00
drm/i915: Lock timeline mutex directly in error path of eb_pin_timeline
Don't use the interruptable version of the timeline mutex lock in the error path of eb_pin_timeline as the cleanup must always happen. v2: (John Harrison) - Don't check for interrupt during mutex lock v3: (Tvrtko) - A comment explaining why lock helper isn't used Fixes:544460c338("drm/i915: Multi-BB execbuf") Signed-off-by: Matthew Brost <matthew.brost@intel.com> Reviewed-by: John Harrison <John.C.Harrison@Intel.com> Signed-off-by: John Harrison <John.C.Harrison@Intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20220111163929.14017-1-matthew.brost@intel.com (cherry picked from commitcb935c4618) Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
This commit is contained in:
parent
8172f41859
commit
5ae13c305e
|
|
@ -2505,9 +2505,14 @@ static int eb_pin_timeline(struct i915_execbuffer *eb, struct intel_context *ce,
|
|||
timeout) < 0) {
|
||||
i915_request_put(rq);
|
||||
|
||||
tl = intel_context_timeline_lock(ce);
|
||||
/*
|
||||
* Error path, cannot use intel_context_timeline_lock as
|
||||
* that is user interruptable and this clean up step
|
||||
* must be done.
|
||||
*/
|
||||
mutex_lock(&ce->timeline->mutex);
|
||||
intel_context_exit(ce);
|
||||
intel_context_timeline_unlock(tl);
|
||||
mutex_unlock(&ce->timeline->mutex);
|
||||
|
||||
if (nonblock)
|
||||
return -EWOULDBLOCK;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user