summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Hellstrom <thellstrom-at-vmware-dot-com>2009-02-05 13:59:48 +0100
committerThomas Hellstrom <thellstrom-at-vmware-dot-com>2009-02-05 13:59:48 +0100
commit869f60aa6232f651849dbed94310c05a7e4fec8f (patch)
tree7b3bd38c6782f1e265d2595219a9c95a68869c56
parentddadcb67da045ba6bdefd0be59f7ecc4ca61f2a9 (diff)
drm core: Wake up _all_ lock waiters when the master is gone.
-rw-r--r--linux-core/drm_bufs.c2
-rw-r--r--linux-core/drm_stub.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/linux-core/drm_bufs.c b/linux-core/drm_bufs.c
index 1016ef71..15171089 100644
--- a/linux-core/drm_bufs.c
+++ b/linux-core/drm_bufs.c
@@ -420,7 +420,7 @@ int drm_rmmap_locked(struct drm_device *dev, drm_local_map_t *map)
dev->sigdata.lock = NULL;
master->lock.hw_lock = NULL; /* SHM removed */
master->lock.file_priv = NULL;
- wake_up_interruptible(&master->lock.lock_queue);
+ wake_up_interruptible_all(&master->lock.lock_queue);
}
break;
case _DRM_AGP:
diff --git a/linux-core/drm_stub.c b/linux-core/drm_stub.c
index 5a63e827..42bb1944 100644
--- a/linux-core/drm_stub.c
+++ b/linux-core/drm_stub.c
@@ -144,7 +144,7 @@ static void drm_master_destroy(struct kref *kref)
dev->sigdata.lock = NULL;
master->lock.hw_lock = NULL; /* SHM removed */
master->lock.file_priv = NULL;
- wake_up_interruptible(&master->lock.lock_queue);
+ wake_up_interruptible_all(&master->lock.lock_queue);
}
drm_free(master, sizeof(*master), DRM_MEM_DRIVER);