aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2009-12-16 00:34:13 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2009-12-16 12:16:40 -0500
commit853b3da10d617f08340e5fe569c99e7b54f2a568 (patch)
tree1c89150faf505825989026dd12641cedaadd6bb8
parent8bea8672edfca7ec5f661cafb218f1205863b343 (diff)
sanitize do_pipe_flags() callers in arch
* 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>
-rw-r--r--arch/parisc/hpux/sys_hpux.c7
-rw-r--r--arch/x86/include/asm/sys_ia32.h1
-rw-r--r--arch/xtensa/include/asm/syscall.h1
-rw-r--r--arch/xtensa/include/asm/unistd.h2
-rw-r--r--arch/xtensa/kernel/syscall.c18
5 files changed, 2 insertions, 27 deletions
diff --git a/arch/parisc/hpux/sys_hpux.c b/arch/parisc/hpux/sys_hpux.c
index 18072e03a019..92343bd35fa3 100644
--- a/arch/parisc/hpux/sys_hpux.c
+++ b/arch/parisc/hpux/sys_hpux.c
@@ -445,12 +445,7 @@ done:
445 445
446int hpux_pipe(int *kstack_fildes) 446int hpux_pipe(int *kstack_fildes)
447{ 447{
448 int error; 448 return do_pipe_flags(kstack_fildes, 0);
449
450 lock_kernel();
451 error = do_pipe_flags(kstack_fildes, 0);
452 unlock_kernel();
453 return error;
454} 449}
455 450
456/* lies - says it works, but it really didn't lock anything */ 451/* lies - says it works, but it really didn't lock anything */
diff --git a/arch/x86/include/asm/sys_ia32.h b/arch/x86/include/asm/sys_ia32.h
index 4a5a089e1c62..d5f69045c100 100644
--- a/arch/x86/include/asm/sys_ia32.h
+++ b/arch/x86/include/asm/sys_ia32.h
@@ -30,7 +30,6 @@ struct mmap_arg_struct;
30asmlinkage long sys32_mmap(struct mmap_arg_struct __user *); 30asmlinkage long sys32_mmap(struct mmap_arg_struct __user *);
31asmlinkage long sys32_mprotect(unsigned long, size_t, unsigned long); 31asmlinkage long sys32_mprotect(unsigned long, size_t, unsigned long);
32 32
33asmlinkage long sys32_pipe(int __user *);
34struct sigaction32; 33struct sigaction32;
35struct old_sigaction32; 34struct old_sigaction32;
36asmlinkage long sys32_rt_sigaction(int, struct sigaction32 __user *, 35asmlinkage long sys32_rt_sigaction(int, struct sigaction32 __user *,
diff --git a/arch/xtensa/include/asm/syscall.h b/arch/xtensa/include/asm/syscall.h
index 4352dbe1186a..efcf33b92e4c 100644
--- a/arch/xtensa/include/asm/syscall.h
+++ b/arch/xtensa/include/asm/syscall.h
@@ -12,7 +12,6 @@ struct pt_regs;
12struct sigaction; 12struct sigaction;
13asmlinkage long xtensa_execve(char*, char**, char**, struct pt_regs*); 13asmlinkage long xtensa_execve(char*, char**, char**, struct pt_regs*);
14asmlinkage long xtensa_clone(unsigned long, unsigned long, struct pt_regs*); 14asmlinkage long xtensa_clone(unsigned long, unsigned long, struct pt_regs*);
15asmlinkage long xtensa_pipe(int __user *);
16asmlinkage long xtensa_ptrace(long, long, long, long); 15asmlinkage long xtensa_ptrace(long, long, long, long);
17asmlinkage long xtensa_sigreturn(struct pt_regs*); 16asmlinkage long xtensa_sigreturn(struct pt_regs*);
18asmlinkage long xtensa_rt_sigreturn(struct pt_regs*); 17asmlinkage long xtensa_rt_sigreturn(struct pt_regs*);
diff --git a/arch/xtensa/include/asm/unistd.h b/arch/xtensa/include/asm/unistd.h
index fbf318b3af3e..528042c2951e 100644
--- a/arch/xtensa/include/asm/unistd.h
+++ b/arch/xtensa/include/asm/unistd.h
@@ -94,7 +94,7 @@ __SYSCALL( 35, sys_readlink, 3)
94#define __NR_mknod 36 94#define __NR_mknod 36
95__SYSCALL( 36, sys_mknod, 3) 95__SYSCALL( 36, sys_mknod, 3)
96#define __NR_pipe 37 96#define __NR_pipe 37
97__SYSCALL( 37, xtensa_pipe, 1) 97__SYSCALL( 37, sys_pipe, 1)
98#define __NR_unlink 38 98#define __NR_unlink 38
99__SYSCALL( 38, sys_unlink, 1) 99__SYSCALL( 38, sys_unlink, 1)
100#define __NR_rmdir 39 100#define __NR_rmdir 39
diff --git a/arch/xtensa/kernel/syscall.c b/arch/xtensa/kernel/syscall.c
index 1e67bab775c1..816e6d0d686c 100644
--- a/arch/xtensa/kernel/syscall.c
+++ b/arch/xtensa/kernel/syscall.c
@@ -39,24 +39,6 @@ syscall_t sys_call_table[__NR_syscall_count] /* FIXME __cacheline_aligned */= {
39#include <asm/unistd.h> 39#include <asm/unistd.h>
40}; 40};
41 41
42/*
43 * xtensa_pipe() is the normal C calling standard for creating a pipe. It's not
44 * the way unix traditional does this, though.
45 */
46
47asmlinkage long xtensa_pipe(int __user *userfds)
48{
49 int fd[2];
50 int error;
51
52 error = do_pipe_flags(fd, 0);
53 if (!error) {
54 if (copy_to_user(userfds, fd, 2 * sizeof(int)))
55 error = -EFAULT;
56 }
57 return error;
58}
59
60asmlinkage long xtensa_shmat(int shmid, char __user *shmaddr, int shmflg) 42asmlinkage long xtensa_shmat(int shmid, char __user *shmaddr, int shmflg)
61{ 43{
62 unsigned long ret; 44 unsigned long ret;