]> git.baikalelectronics.ru Git - kernel.git/commit
drm/nouveau/tmr: fully separate alarm execution/pending lists
authorBen Skeggs <bskeggs@redhat.com>
Mon, 5 Jun 2017 07:23:32 +0000 (17:23 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Tue, 6 Jun 2017 04:04:07 +0000 (14:04 +1000)
commit4d475b654b0c4022acb1d27cdceb824c50dc6a7a
treee2410363af583b24d212c6f116a868ae6f718fea
parent90282874267a2acdb841497f862fc702fd2c3237
drm/nouveau/tmr: fully separate alarm execution/pending lists

Reusing the list_head for both is a bad idea.  Callback execution is done
with the lock dropped so that alarms can be rescheduled from the callback,
which means that with some unfortunate timing, lists can get corrupted.

The execution list should not require its own locking, the single function
that uses it can only be called from a single context.

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