aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_ringbuffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/intel_ringbuffer.c')
-rw-r--r--drivers/gpu/drm/i915/intel_ringbuffer.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index d81eaf5f6b3e..81b10d85b738 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -755,9 +755,18 @@ static void cancel_requests(struct intel_engine_cs *engine)
755 /* Mark all submitted requests as skipped. */ 755 /* Mark all submitted requests as skipped. */
756 list_for_each_entry(request, &engine->timeline.requests, link) { 756 list_for_each_entry(request, &engine->timeline.requests, link) {
757 GEM_BUG_ON(!request->global_seqno); 757 GEM_BUG_ON(!request->global_seqno);
758 if (!i915_request_completed(request)) 758
759 dma_fence_set_error(&request->fence, -EIO); 759 if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT,
760 &request->fence.flags))
761 continue;
762
763 dma_fence_set_error(&request->fence, -EIO);
760 } 764 }
765
766 intel_write_status_page(engine,
767 I915_GEM_HWS_INDEX,
768 intel_engine_last_submit(engine));
769
761 /* Remaining _unready_ requests will be nop'ed when submitted */ 770 /* Remaining _unready_ requests will be nop'ed when submitted */
762 771
763 spin_unlock_irqrestore(&engine->timeline.lock, flags); 772 spin_unlock_irqrestore(&engine->timeline.lock, flags);