aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-05-15 04:57:03 -0400
committerEric Anholt <eric@anholt.net>2010-05-26 17:11:45 -0400
commit9908ff736adf261e749b4887486a32ffa209304c (patch)
treeac2aceb5f2d598f5bbd112cbe0553edc51a9b124
parentf1befe71fa7a79ab733011b045639d8d809924ad (diff)
drm/i915: Kill dangerous pending-flip debugging
We can, by virtue of a vblank interrupt firing in the middle of setting up the unpin work (i.e. after we set the unpin_work field and before we write to the ringbuffer) enter intel_finish_page_flip() prior to receiving the pending flip notification. Therefore we can expect to hit intel_finish_page_flip() under normal circumstances without a pending flip and even without installing the pending_flip_obj. This is exacerbated by aperture thrashing whilst binding the framebuffer References: Bug 28079 - "glresize" causes kernel panic in intel_finish_page_flip. https://bugs.freedesktop.org/show_bug.cgi?id=28079 Reported-by: Nick Bowler <nbowler@draconx.ca> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Jesse Barnes <jbarnes@virtuousgeek.org> Cc: stable@kernel.org Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Eric Anholt <eric@anholt.net>
-rw-r--r--drivers/gpu/drm/i915/intel_display.c6
1 files changed, 0 insertions, 6 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index e94d1db35364..f946332612ec 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -4589,12 +4589,6 @@ void intel_finish_page_flip(struct drm_device *dev, int pipe)
4589 spin_lock_irqsave(&dev->event_lock, flags); 4589 spin_lock_irqsave(&dev->event_lock, flags);
4590 work = intel_crtc->unpin_work; 4590 work = intel_crtc->unpin_work;
4591 if (work == NULL || !work->pending) { 4591 if (work == NULL || !work->pending) {
4592 if (work && !work->pending) {
4593 obj_priv = to_intel_bo(work->pending_flip_obj);
4594 DRM_DEBUG_DRIVER("flip finish: %p (%d) not pending?\n",
4595 obj_priv,
4596 atomic_read(&obj_priv->pending_flip));
4597 }
4598 spin_unlock_irqrestore(&dev->event_lock, flags); 4592 spin_unlock_irqrestore(&dev->event_lock, flags);
4599 return; 4593 return;
4600 } 4594 }