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:07:45 +0000 (08:07 +0100)
commitadea4a7b0f2b5534712cf69b699dfc071447269f
tree3cea5248a8f13644796be637c7db94de55ed0d09
parentd32d4b3d7c9f6164170c0277740fd45bcd364bf6
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