]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - 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
1 From 3733bd8b407211739e72d051e5f30ad82a52c4bc Mon Sep 17 00:00:00 2001
2 From: Ben Skeggs <bskeggs@redhat.com>
3 Date: Thu, 11 May 2017 16:53:42 +1000
4 Subject: drm/nouveau/tmr: ack interrupt before processing alarms
5
6 From: Ben Skeggs <bskeggs@redhat.com>
7
8 commit 3733bd8b407211739e72d051e5f30ad82a52c4bc upstream.
9
10 Fixes a race where we can miss an alarm that triggers while we're already
11 processing previous alarms.
12
13 Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
14 Signed-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