]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: Reset last_retired_head when resetting ring
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 28 May 2012 21:33:02 +0000 (22:33 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 29 May 2012 18:06:58 +0000 (20:06 +0200)
commitd595acbfeb740923dae8c27994c9c6ce3864169c
tree95b4dc9d2a57a17d5be75f03868496aa70b51508
parent2802530abd2271f05d6976b49580efe6981cb43d
drm/i915: Reset last_retired_head when resetting ring

When we reset the ring control registers, including the HEAD and TAIL of
the ring, we also need to reset associated state. In this instance, we
were failing to reset the cached value of ring->last_retired_head and so
upon the first request for more space following a resume would
potentially (depending on a narrow race window) believe that the HEAD had
advanced much further than reality.

This is a regression from:

commit f3490f53ba7a4b76b64580afe8325ee3fb8e82d7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Feb 15 11:25:36 2012 +0000

    drm/i915: Record the tail at each request and use it to estimate the head

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: stable@vger.kernel.org # 3.4
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_ringbuffer.c