Commit c3c2ac4c authored by John Harrison's avatar John Harrison

drm/i915/guc: Check for wedged before doing stuff

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: default avatarJohn Harrison <John.C.Harrison@Intel.com>
Reviewed-by: default avatarMatthew Brost <matthew.brost@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211221210212.1438670-1-John.C.Harrison@Intel.com
parent a88afcfa
...@@ -1349,7 +1349,8 @@ submission_disabled(struct intel_guc *guc) ...@@ -1349,7 +1349,8 @@ submission_disabled(struct intel_guc *guc)
struct i915_sched_engine * const sched_engine = guc->sched_engine; struct i915_sched_engine * const sched_engine = guc->sched_engine;
return unlikely(!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) static void disable_submission(struct intel_guc *guc)
...@@ -1725,7 +1726,7 @@ void intel_guc_submission_reset_finish(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? */ /* Reset called during driver load or during wedge? */
if (unlikely(!guc_submission_initialized(guc) || 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; return;
} }
......
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