aboutsummaryrefslogtreecommitdiff
path: root/linux-core/drm_fops.c
diff options
context:
space:
mode:
authorThomas Hellstrom <thomas-at-tungstengraphics-dot-com>2008-04-23 17:33:09 +0200
committerThomas Hellstrom <thomas-at-tungstengraphics-dot-com>2008-04-23 17:34:21 +0200
commit10b9a116a7b7fe3acf0848de9e0cf40f8e1bcd75 (patch)
tree447071b849cf0ac8d52a5be4d099bdcb35da6e5a /linux-core/drm_fops.c
parent9ba3aaaa1a22663ec3d8d9d1792edf10a25d0ad7 (diff)
Don't disable IRQs, just tasklets, when taking the drm lock spinlock.
Diffstat (limited to 'linux-core/drm_fops.c')
-rw-r--r--linux-core/drm_fops.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/linux-core/drm_fops.c b/linux-core/drm_fops.c
index a4c76f75..3bc25f24 100644
--- a/linux-core/drm_fops.c
+++ b/linux-core/drm_fops.c
@@ -373,7 +373,6 @@ int drm_release(struct inode *inode, struct file *filp)
struct drm_file *file_priv = filp->private_data;
struct drm_device *dev = file_priv->minor->dev;
int retcode = 0;
- unsigned long irqflags;
lock_kernel();
@@ -404,11 +403,9 @@ int drm_release(struct inode *inode, struct file *filp)
*/
do{
- spin_lock_irqsave(&dev->lock.spinlock,
- irqflags);
+ spin_lock_bh(&dev->lock.spinlock);
locked = dev->lock.idle_has_lock;
- spin_unlock_irqrestore(&dev->lock.spinlock,
- irqflags);
+ spin_unlock_bh(&dev->lock.spinlock);
if (locked)
break;
schedule();