drm/nouveau/fifo/gf100-: protect channel preempt with subdev mutex
authorBen Skeggs <bskeggs@redhat.com>
Sat, 5 Nov 2016 04:33:14 +0000 (14:33 +1000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 9 Jan 2017 07:21:51 +0000 (08:21 +0100)
commit9c6fb7bf404d3ea131e16a083e678f792019a78c
tree13576117f4e1bfe17ce8f093a62b87f1b6e1f838
parent2a7a43772bffce5e2e155d63d9e1f895153063b3
drm/nouveau/fifo/gf100-: protect channel preempt with subdev mutex

commit b27add13f500469127afdf011dbcc9c649e16e54 upstream.

This avoids an issue that occurs when we're attempting to preempt multiple
channels simultaneously.  HW seems to ignore preempt requests while it's
still processing a previous one, which, well, makes sense.

Fixes random "fifo: SCHED_ERROR 0d []" + GPCCS page faults during parallel
piglit runs on (at least) GM107.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifogf100.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifogk104.c