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)
committerBen Skeggs <bskeggs@redhat.com>
Mon, 7 Nov 2016 04:05:13 +0000 (14:05 +1000)
commitb27add13f500469127afdf011dbcc9c649e16e54
tree29f3d0087452fdcf7166d83c82a936af26f3e8e0
parente137040e0d0376b404fc5155eba44ea07126e3bd
drm/nouveau/fifo/gf100-: protect channel preempt with subdev mutex

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>
Cc: stable@vger.kernel.org
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifogf100.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifogk104.c