diff options
author | Thomas Hellstrom <thomas-at-tungstengraphics-dot-com> | 2008-05-07 12:22:39 +1000 |
---|---|---|
committer | Dave Airlie <airlied@linux.ie> | 2008-05-07 12:22:39 +1000 |
commit | f116cc561eae0a426b8fa6b3e22e80ba0bcf7aee (patch) | |
tree | 4af813d3ccdfdeb261bc892409cf4ed59d136930 /drivers/char/drm/drm_fops.c | |
parent | af6061af0d9f84a4665f88186dc1ff9e4fb78330 (diff) |
drm: disable tasklets not IRQs when taking the drm lock spinlock
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/char/drm/drm_fops.c')
-rw-r--r-- | drivers/char/drm/drm_fops.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/drivers/char/drm/drm_fops.c b/drivers/char/drm/drm_fops.c index 68f0da801ed..d2e6da85f58 100644 --- a/drivers/char/drm/drm_fops.c +++ b/drivers/char/drm/drm_fops.c @@ -323,7 +323,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(); @@ -355,11 +354,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(); |