drm/i915: Mark up nested spinlocks
When we process the outstanding requests upon banning a context, we need to acquire both the engine and the client's timeline, nesting the locks. This requires explicit markup as the two timelines are now of the same class, since commita89d1f921c
("drm/i915: Split i915_gem_timeline into individual timelines"). Testcase: igt/gem_eio/banned Fixes:a89d1f921c
("drm/i915: Split i915_gem_timeline into individual timelines") Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Cc: Michel Thierry <michel.thierry@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180512084957.9829-1-chris@chris-wilson.co.uk
This commit is contained in:
parent
4db518e4e8
commit
0c591a40af
|
@ -3119,7 +3119,7 @@ static void engine_skip_context(struct i915_request *request)
|
|||
GEM_BUG_ON(timeline == &engine->timeline);
|
||||
|
||||
spin_lock_irqsave(&engine->timeline.lock, flags);
|
||||
spin_lock(&timeline->lock);
|
||||
spin_lock_nested(&timeline->lock, SINGLE_DEPTH_NESTING);
|
||||
|
||||
list_for_each_entry_continue(request, &engine->timeline.requests, link)
|
||||
if (request->ctx == hung_ctx)
|
||||
|
|
Loading…
Reference in New Issue