OSDN Git Service

drm/i915/guc: Check for wedged before doing stuff
authorJohn Harrison <John.C.Harrison@Intel.com>
Tue, 21 Dec 2021 21:02:12 +0000 (13:02 -0800)
committerJohn Harrison <John.C.Harrison@Intel.com>
Thu, 23 Dec 2021 19:43:40 +0000 (11:43 -0800)
A fault injection probe test hit a BUG_ON in a GuC error path. It
showed that the GuC code could potentially attempt to do many things
when the device is actually wedged. So, add a check in to prevent that.

v2: Use intel_gt_is_wedged instead of testing bits directly in the
GuC submission code (review feedback from Tvrtko).

Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211221210212.1438670-1-John.C.Harrison@Intel.com
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c

index 06ebcea..9989d12 100644 (file)
@@ -1349,7 +1349,8 @@ submission_disabled(struct intel_guc *guc)
        struct i915_sched_engine * const sched_engine = guc->sched_engine;
 
        return unlikely(!sched_engine ||
-                       !__tasklet_is_enabled(&sched_engine->tasklet));
+                       !__tasklet_is_enabled(&sched_engine->tasklet) ||
+                       intel_gt_is_wedged(guc_to_gt(guc)));
 }
 
 static void disable_submission(struct intel_guc *guc)
@@ -1725,7 +1726,7 @@ void intel_guc_submission_reset_finish(struct intel_guc *guc)
 {
        /* Reset called during driver load or during wedge? */
        if (unlikely(!guc_submission_initialized(guc) ||
-                    test_bit(I915_WEDGED, &guc_to_gt(guc)->reset.flags))) {
+                    intel_gt_is_wedged(guc_to_gt(guc)))) {
                return;
        }