浏览代码

blackfin: Remove the BKL from sys_execve

This looks like a cut-and-paste job. For example, compare this
function to sys_execve in arch/x86/kernel/process_64.c and it is
almost line by line the same, except the one in x86 nolonger has the
big kernel lock. All of the functions called between the lock are
generic and not specific to blackfin - thus, I believe it is safe to
remove the bkl here.

Signed-off-by: John Kacur <jkacur@redhat.com>
Reviewed-by: Frederic Weisbecker <fweisbec@gmail.com>
Acked-by: Mike Frysinger <vapier@gentoo.org>
LKML-Reference: <alpine.LFD.2.00.0910130007240.3658@localhost.localdomain>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
John Kacur 15 年之前
父节点
当前提交
25708a5fe7
共有 1 个文件被更改,包括 1 次插入5 次删除
  1. 1 5
      arch/blackfin/kernel/process.c

+ 1 - 5
arch/blackfin/kernel/process.c

@@ -215,22 +215,18 @@ copy_thread(unsigned long clone_flags,
 /*
 /*
  * sys_execve() executes a new program.
  * sys_execve() executes a new program.
  */
  */
-
 asmlinkage int sys_execve(char __user *name, char __user * __user *argv, char __user * __user *envp)
 asmlinkage int sys_execve(char __user *name, char __user * __user *argv, char __user * __user *envp)
 {
 {
 	int error;
 	int error;
 	char *filename;
 	char *filename;
 	struct pt_regs *regs = (struct pt_regs *)((&name) + 6);
 	struct pt_regs *regs = (struct pt_regs *)((&name) + 6);
 
 
-	lock_kernel();
 	filename = getname(name);
 	filename = getname(name);
 	error = PTR_ERR(filename);
 	error = PTR_ERR(filename);
 	if (IS_ERR(filename))
 	if (IS_ERR(filename))
-		goto out;
+		return error;
 	error = do_execve(filename, argv, envp, regs);
 	error = do_execve(filename, argv, envp, regs);
 	putname(filename);
 	putname(filename);
- out:
-	unlock_kernel();
 	return error;
 	return error;
 }
 }