Commit 8e37d699 authored by Chris Wilson's avatar Chris Wilson

drm/i915/gt: Cancel a hung context if already closed

Use the restored ability to check if a context is closed to decide
whether or not to immediately ban the context from further execution
after a hang.

Fixes: be90e344 ("drm/i915/gt: Cancel banned contexts after GT reset")
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200319170707.8262-2-chris@chris-wilson.co.uk
parent 207e4a71
...@@ -88,6 +88,11 @@ static bool mark_guilty(struct i915_request *rq) ...@@ -88,6 +88,11 @@ static bool mark_guilty(struct i915_request *rq)
bool banned; bool banned;
int i; int i;
if (intel_context_is_closed(rq->context)) {
intel_context_set_banned(rq->context);
return true;
}
rcu_read_lock(); rcu_read_lock();
ctx = rcu_dereference(rq->context->gem_context); ctx = rcu_dereference(rq->context->gem_context);
if (ctx && !kref_get_unless_zero(&ctx->ref)) if (ctx && !kref_get_unless_zero(&ctx->ref))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment