summaryrefslogtreecommitdiffstats
path: root/arch/c6x
diff options
context:
space:
mode:
authorChris Wilson2017-03-29 14:13:15 +0200
committerJani Nikula2017-03-29 14:45:48 +0200
commitdd68f2ba0720e76c3a5bfa3f639c546f926792f5 (patch)
tree3bc6d688394d47f5e99c1a11694ebf61c25374c9 /arch/c6x
parentdrm/i915/perf: remove user triggerable warn (diff)
downloadkernel-qcow2-linux-dd68f2ba0720e76c3a5bfa3f639c546f926792f5.tar.gz
kernel-qcow2-linux-dd68f2ba0720e76c3a5bfa3f639c546f926792f5.tar.xz
kernel-qcow2-linux-dd68f2ba0720e76c3a5bfa3f639c546f926792f5.zip
drm/i915/execlists: Wrap tail pointer after reset tweaking
If the request->wa_tail is 0 (because it landed exactly on the end of the ringbuffer), when we reconstruct request->tail following a reset we fill in an illegal value (-8 or 0x001ffff8). As a result, RING_HEAD is never able to catch up with RING_TAIL and the GPU spins endlessly. If the ring contains a couple of breadcrumbs, even our hangcheck is unable to catch the busy-looping as the ACTHD and seqno continually advance. v2: Move the wrap into a common intel_ring_wrap(). Fixes: a3aabe86a340 ("drm/i915/execlists: Reinitialise context image after GPU hang") Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Mika Kuoppala <mika.kuoppala@intel.com> Cc: <stable@vger.kernel.org> # v4.10+ Link: http://patchwork.freedesktop.org/patch/msgid/20170327130009.4678-1-chris@chris-wilson.co.uk Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com> (cherry picked from commit 450362d3fe866b14304f309b5fffba0c33fbfbc3) Signed-off-by: Jani Nikula <jani.nikula@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/20170329121315.1290-1-chris@chris-wilson.co.uk
Diffstat (limited to 'arch/c6x')
0 files changed, 0 insertions, 0 deletions