summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/nouveau/core/include
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2013-10-03 09:59:16 +1000
committerBen Skeggs <bskeggs@redhat.com>2013-11-08 15:36:06 +1000
commit15689c3c819d1d659cff464f427f398758a683de (patch)
treee13de5a68558c7d2a3055a6ce632d0ac0e5d07bc /drivers/gpu/drm/nouveau/core/include
parent51cb4b392a307a8293b4f1f300ab803d7ad3b036 (diff)
drm/nouveau/core: split lock into list+exec and enable refcount locks
This fixes a reported locking inversion when interacting with the DRM core's vblank routines. Reviewed-by: Maarten Lankhorst <maarten.lankhorst@canonical.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/core/include')
-rw-r--r--drivers/gpu/drm/nouveau/core/include/core/event.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/core/include/core/event.h b/drivers/gpu/drm/nouveau/core/include/core/event.h
index b649c75d7198..5d539ebff3ed 100644
--- a/drivers/gpu/drm/nouveau/core/include/core/event.h
+++ b/drivers/gpu/drm/nouveau/core/include/core/event.h
@@ -18,7 +18,8 @@ struct nouveau_eventh {
};
struct nouveau_event {
- spinlock_t lock;
+ spinlock_t list_lock;
+ spinlock_t refs_lock;
void *priv;
void (*enable)(struct nouveau_event *, int index);