aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_ringbuffer.c
diff options
context:
space:
mode:
authorChris Wilson <[email protected]>2018-05-16 18:33:55 +0000
committerChris Wilson <[email protected]>2018-05-16 19:20:39 +0000
commit3f6e9822308127104a7bb007ca569f2c57d03b67 (patch)
tree93dff6be777c12c275f5e3abb1738408effc86fa /drivers/gpu/drm/i915/intel_ringbuffer.c
parentdrm/i915/execlists: Flush pending preemption events during reset (diff)
downloadkernel-3f6e9822308127104a7bb007ca569f2c57d03b67.tar.gz
kernel-3f6e9822308127104a7bb007ca569f2c57d03b67.zip
drm/i915: Stop parking the signaler around reset
We cannot call kthread_park() from softirq context, so let's avoid it entirely during the reset. We wanted to suspend the signaler so that it would not mark a request as complete at the same time as we marked it as being in error. Instead of parking the signaling, stop the engine from advancing so that the GPU doesn't emit the breadcrumb for our chosen "guilty" request. v2: Refactor setting STOP_RING so that we don't have the same code thrice Signed-off-by: Chris Wilson <[email protected]> Cc: Mika Kuoppala <[email protected]> Cc: Michałt Winiarski <[email protected]> CC: Michel Thierry <[email protected]> Cc: Jeff McGee <[email protected]> Cc: Tvrtko Ursulin <[email protected]> Reviewed-by: Tvrtko Ursulin <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
Diffstat (limited to 'drivers/gpu/drm/i915/intel_ringbuffer.c')
-rw-r--r--drivers/gpu/drm/i915/intel_ringbuffer.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index af5a178366ed..6f200a747176 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -533,6 +533,8 @@ out:
static struct i915_request *reset_prepare(struct intel_engine_cs *engine)
{
+ intel_engine_stop_cs(engine);
+
if (engine->irq_seqno_barrier)
engine->irq_seqno_barrier(engine);