aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <[email protected]>2017-01-10 17:22:42 +0000
committerChris Wilson <[email protected]>2017-01-10 20:49:29 +0000
commit2edc6e0df1c15c0cc665a8aa61dcf2c540e90a70 (patch)
treeaafc3297fd9b5363ea80c83ff0cf1a7b49138b87
parent246ee524a2846fc0f32b8ac9d846bc93e38851e8 (diff)
drm/i915: Consolidate reset_request()
Always reset the requests of the guilty context, including the hung request that we tell the hardware to skip. This should help if the reprogram fails entirely, but more importantly makes the guilty path more uniform (and simplifies the subsequent patch to tweak the cancelled requests). Signed-off-by: Chris Wilson <[email protected]> Cc: Tvrtko Ursulin <[email protected]> Cc: Mika Kuoppala <[email protected]> Reviewed-by: Tvrtko Ursulin <[email protected]> Link: http://patchwork.freedesktop.org/patch/msgid/[email protected]
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 91d726f8bdfa..fb2433175a3d 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -2658,13 +2658,13 @@ static void i915_gem_reset_engine(struct intel_engine_cs *engine)
ring_hung = false;
}
- if (ring_hung)
+ if (ring_hung) {
i915_gem_context_mark_guilty(hung_ctx);
- else
+ reset_request(request);
+ } else {
i915_gem_context_mark_innocent(hung_ctx);
-
- if (!ring_hung)
return;
+ }
DRM_DEBUG_DRIVER("resetting %s to restart from tail of request 0x%x\n",
engine->name, request->global_seqno);