drm/nouveau/tmr: fix corruption of the pending list when rescheduling an alarm
authorBen Skeggs <bskeggs@redhat.com>
Thu, 11 May 2017 07:03:05 +0000 (17:03 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Thu, 11 May 2017 22:32:57 +0000 (08:32 +1000)
commit9fc64667ee48c9a25e7dca1a6bcb6906fec5bcc5
treef6f6d06887a94e9675c51e915bc729f06650801e
parent1b0f84380b10ee97f7d2dd191294de9017e94d1d
drm/nouveau/tmr: fix corruption of the pending list when rescheduling an alarm

At least therm/fantog "attempts" to work around this issue, which could
lead to corruption of the pending alarm list.

Fix it properly by not updating the timestamp without the lock held, or
trying to add an already pending alarm to the pending alarm list....

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Cc: stable@vger.kernel.org
drivers/gpu/drm/nouveau/nvkm/subdev/timer/base.c