sanitize do_pipe_flags() callers in arch
authorAl Viro <viro@zeniv.linux.org.uk>
Wed, 16 Dec 2009 05:34:13 +0000 (00:34 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Wed, 16 Dec 2009 17:16:40 +0000 (12:16 -0500)
* hpux_pipe() - no need to take BKL
* sys32_pipe() in arch/x86/ia32 and xtensa_pipe() in arch/xtensa -
no need at all, since both functions are open-coded sys_pipe()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
arch/parisc/hpux/sys_hpux.c
arch/x86/include/asm/sys_ia32.h
arch/xtensa/include/asm/syscall.h
arch/xtensa/include/asm/unistd.h
arch/xtensa/kernel/syscall.c

index 18072e03a019e1411b88a5e0b3fa1ee48e2b6458..92343bd35fa30c99f64d5c48ddd2aad6efb6ee19 100644 (file)
@@ -445,12 +445,7 @@ done:
 
 int hpux_pipe(int *kstack_fildes)
 {
-       int error;
-
-       lock_kernel();
-       error = do_pipe_flags(kstack_fildes, 0);
-       unlock_kernel();
-       return error;
+       return do_pipe_flags(kstack_fildes, 0);
 }
 
 /* lies - says it works, but it really didn't lock anything */
index 4a5a089e1c6273c7d7a633a5be1b3e64c7e9a6db..d5f69045c100947290cb19f3d74afd8410464f2b 100644 (file)
@@ -30,7 +30,6 @@ struct mmap_arg_struct;
 asmlinkage long sys32_mmap(struct mmap_arg_struct __user *);
 asmlinkage long sys32_mprotect(unsigned long, size_t, unsigned long);
 
-asmlinkage long sys32_pipe(int __user *);
 struct sigaction32;
 struct old_sigaction32;
 asmlinkage long sys32_rt_sigaction(int, struct sigaction32 __user *,
index 4352dbe1186ae07d571abe2c1031f94e73df24ac..efcf33b92e4c02e77df78a78d95c112badc60716 100644 (file)
@@ -12,7 +12,6 @@ struct pt_regs;
 struct sigaction;
 asmlinkage long xtensa_execve(char*, char**, char**, struct pt_regs*);
 asmlinkage long xtensa_clone(unsigned long, unsigned long, struct pt_regs*);
-asmlinkage long xtensa_pipe(int __user *);
 asmlinkage long xtensa_ptrace(long, long, long, long);
 asmlinkage long xtensa_sigreturn(struct pt_regs*);
 asmlinkage long xtensa_rt_sigreturn(struct pt_regs*);
index fbf318b3af3e3b688515e7b4e26dd5d0097ef1ff..528042c2951ea5949bcf6c27875e7977dd2a90db 100644 (file)
@@ -94,7 +94,7 @@ __SYSCALL( 35, sys_readlink, 3)
 #define __NR_mknod                              36
 __SYSCALL( 36, sys_mknod, 3)
 #define __NR_pipe                               37
-__SYSCALL( 37, xtensa_pipe, 1)
+__SYSCALL( 37, sys_pipe, 1)
 #define __NR_unlink                             38
 __SYSCALL( 38, sys_unlink, 1)
 #define __NR_rmdir                              39
index 1e67bab775c18fc47a79d6701c30264d20350377..816e6d0d686c6f934bae7de3786ee4fc463ac567 100644 (file)
@@ -39,24 +39,6 @@ syscall_t sys_call_table[__NR_syscall_count] /* FIXME __cacheline_aligned */= {
 #include <asm/unistd.h>
 };
 
-/*
- * xtensa_pipe() is the normal C calling standard for creating a pipe. It's not
- * the way unix traditional does this, though.
- */
-
-asmlinkage long xtensa_pipe(int __user *userfds)
-{
-       int fd[2];
-       int error;
-
-       error = do_pipe_flags(fd, 0);
-       if (!error) {
-               if (copy_to_user(userfds, fd, 2 * sizeof(int)))
-                       error = -EFAULT;
-       }
-       return error;
-}
-
 asmlinkage long xtensa_shmat(int shmid, char __user *shmaddr, int shmflg)
 {
        unsigned long ret;