]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/i915/gt: Cancel a hung context if already closed
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 19 Mar 2020 17:07:07 +0000 (17:07 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 19 Mar 2020 21:28:24 +0000 (21:28 +0000)
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: 239f2098a352 ("drm/i915/gt: Cancel banned contexts after GT reset")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200319170707.8262-2-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gt/intel_reset.c

index 9a15bdf31c7f295eec460e81b6257662603efc51..003f26b429983a5a2af3715a7ff76cd0bdb639eb 100644 (file)
@@ -88,6 +88,11 @@ static bool mark_guilty(struct i915_request *rq)
        bool banned;
        int i;
 
+       if (intel_context_is_closed(rq->context)) {
+               intel_context_set_banned(rq->context);
+               return true;
+       }
+
        rcu_read_lock();
        ctx = rcu_dereference(rq->context->gem_context);
        if (ctx && !kref_get_unless_zero(&ctx->ref))