Merge branches 'futexes-for-linus', 'irq-core-for-linus' and 'bkl-drivers-for-linus...
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 1 Mar 2010 16:51:52 +0000 (08:51 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 1 Mar 2010 16:51:52 +0000 (08:51 -0800)
* 'futexes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  futex: Protect pid lookup in compat code with RCU

* 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  genirq: Fix documentation of default chip disable()

* 'bkl-drivers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  nvram: Drop the BKL from nvram_open()

drivers/char/nvram.c
include/linux/irq.h
kernel/futex_compat.c

index fdbcc9fd6d3143a00810fd664d77379ee083717b..5eb83c3ca20de35be340031015a93495ae19e12b 100644 (file)
@@ -336,14 +336,12 @@ static int nvram_ioctl(struct inode *inode, struct file *file,
 
 static int nvram_open(struct inode *inode, struct file *file)
 {
-       lock_kernel();
        spin_lock(&nvram_state_lock);
 
        if ((nvram_open_cnt && (file->f_flags & O_EXCL)) ||
            (nvram_open_mode & NVRAM_EXCL) ||
            ((file->f_mode & FMODE_WRITE) && (nvram_open_mode & NVRAM_WRITE))) {
                spin_unlock(&nvram_state_lock);
-               unlock_kernel();
                return -EBUSY;
        }
 
@@ -354,7 +352,6 @@ static int nvram_open(struct inode *inode, struct file *file)
        nvram_open_cnt++;
 
        spin_unlock(&nvram_state_lock);
-       unlock_kernel();
 
        return 0;
 }
index 451481c082b55c3f571e4dadc1d2b7b386bdfa9a..d13492df57a1bb9c55dd51085b6518aae5557208 100644 (file)
@@ -90,7 +90,7 @@ struct msi_desc;
  * @startup:           start up the interrupt (defaults to ->enable if NULL)
  * @shutdown:          shut down the interrupt (defaults to ->disable if NULL)
  * @enable:            enable the interrupt (defaults to chip->unmask if NULL)
- * @disable:           disable the interrupt (defaults to chip->mask if NULL)
+ * @disable:           disable the interrupt
  * @ack:               start of a new interrupt
  * @mask:              mask an interrupt source
  * @mask_ack:          ack and mask an interrupt source
index 235716556bf16ed9b97c19a9578ef24dec19edb1..d49afb2395e5cab17dd85417c95741c60c12a4cf 100644 (file)
@@ -146,7 +146,7 @@ compat_sys_get_robust_list(int pid, compat_uptr_t __user *head_ptr,
                struct task_struct *p;
 
                ret = -ESRCH;
-               read_lock(&tasklist_lock);
+               rcu_read_lock();
                p = find_task_by_vpid(pid);
                if (!p)
                        goto err_unlock;
@@ -157,7 +157,7 @@ compat_sys_get_robust_list(int pid, compat_uptr_t __user *head_ptr,
                    !capable(CAP_SYS_PTRACE))
                        goto err_unlock;
                head = p->compat_robust_list;
-               read_unlock(&tasklist_lock);
+               rcu_read_unlock();
        }
 
        if (put_user(sizeof(*head), len_ptr))
@@ -165,7 +165,7 @@ compat_sys_get_robust_list(int pid, compat_uptr_t __user *head_ptr,
        return put_user(ptr_to_compat(head), head_ptr);
 
 err_unlock:
-       read_unlock(&tasklist_lock);
+       rcu_read_unlock();
 
        return ret;
 }