diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2022-06-01 20:46:39 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2022-11-09 10:44:27 +1000 |
commit | 6c9705f68465661eede90ce435eda7fd49f70d79 (patch) | |
tree | 7f3e3f8d3f76e7ba4cf2edda5d997734225dc97f /drivers/gpu/drm/nouveau/nouveau_fence.c | |
parent | 8c880fd4c155d9b1b3e294169d7dc3f3a1e04bd3 (diff) | |
download | lwn-6c9705f68465661eede90ce435eda7fd49f70d79.tar.gz lwn-6c9705f68465661eede90ce435eda7fd49f70d79.zip |
drm/nouveau/fifo: expose channel killed in host channel event class
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_fence.c')
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_fence.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_fence.c b/drivers/gpu/drm/nouveau/nouveau_fence.c index 62560e30febb..c4c8af16af02 100644 --- a/drivers/gpu/drm/nouveau/nouveau_fence.c +++ b/drivers/gpu/drm/nouveau/nouveau_fence.c @@ -88,8 +88,9 @@ void nouveau_fence_context_kill(struct nouveau_fence_chan *fctx, int error) { struct nouveau_fence *fence; + unsigned long flags; - spin_lock_irq(&fctx->lock); + spin_lock_irqsave(&fctx->lock, flags); while (!list_empty(&fctx->pending)) { fence = list_entry(fctx->pending.next, typeof(*fence), head); @@ -99,7 +100,7 @@ nouveau_fence_context_kill(struct nouveau_fence_chan *fctx, int error) if (nouveau_fence_signal(fence)) nvif_event_block(&fctx->event); } - spin_unlock_irq(&fctx->lock); + spin_unlock_irqrestore(&fctx->lock, flags); } void |