]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/4.9.30/drm-nouveau-tmr-ack-interrupt-before-processing-alarms.patch
Linux 4.14.95
[thirdparty/kernel/stable-queue.git] / releases / 4.9.30 / drm-nouveau-tmr-ack-interrupt-before-processing-alarms.patch
CommitLineData
899c9bca
GKH
1From 3733bd8b407211739e72d051e5f30ad82a52c4bc Mon Sep 17 00:00:00 2001
2From: Ben Skeggs <bskeggs@redhat.com>
3Date: Thu, 11 May 2017 16:53:42 +1000
4Subject: drm/nouveau/tmr: ack interrupt before processing alarms
5
6From: Ben Skeggs <bskeggs@redhat.com>
7
8commit 3733bd8b407211739e72d051e5f30ad82a52c4bc upstream.
9
10Fixes a race where we can miss an alarm that triggers while we're already
11processing previous alarms.
12
13Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
15
16---
17 drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv04.c | 2 +-
18 1 file changed, 1 insertion(+), 1 deletion(-)
19
20--- a/drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv04.c
21+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv04.c
22@@ -76,8 +76,8 @@ nv04_timer_intr(struct nvkm_timer *tmr)
23 u32 stat = nvkm_rd32(device, NV04_PTIMER_INTR_0);
24
25 if (stat & 0x00000001) {
26- nvkm_timer_alarm_trigger(tmr);
27 nvkm_wr32(device, NV04_PTIMER_INTR_0, 0x00000001);
28+ nvkm_timer_alarm_trigger(tmr);
29 stat &= ~0x00000001;
30 }
31