diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2009-12-16 00:34:13 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2009-12-16 12:16:40 -0500 |
commit | 853b3da10d617f08340e5fe569c99e7b54f2a568 (patch) | |
tree | 1c89150faf505825989026dd12641cedaadd6bb8 | |
parent | 8bea8672edfca7ec5f661cafb218f1205863b343 (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.c | 7 | ||||
-rw-r--r-- | arch/x86/include/asm/sys_ia32.h | 1 | ||||
-rw-r--r-- | arch/xtensa/include/asm/syscall.h | 1 | ||||
-rw-r--r-- | arch/xtensa/include/asm/unistd.h | 2 | ||||
-rw-r--r-- | arch/xtensa/kernel/syscall.c | 18 |
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 | ||
446 | int hpux_pipe(int *kstack_fildes) | 446 | int 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; | |||
30 | asmlinkage long sys32_mmap(struct mmap_arg_struct __user *); | 30 | asmlinkage long sys32_mmap(struct mmap_arg_struct __user *); |
31 | asmlinkage long sys32_mprotect(unsigned long, size_t, unsigned long); | 31 | asmlinkage long sys32_mprotect(unsigned long, size_t, unsigned long); |
32 | 32 | ||
33 | asmlinkage long sys32_pipe(int __user *); | ||
34 | struct sigaction32; | 33 | struct sigaction32; |
35 | struct old_sigaction32; | 34 | struct old_sigaction32; |
36 | asmlinkage long sys32_rt_sigaction(int, struct sigaction32 __user *, | 35 | asmlinkage 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; | |||
12 | struct sigaction; | 12 | struct sigaction; |
13 | asmlinkage long xtensa_execve(char*, char**, char**, struct pt_regs*); | 13 | asmlinkage long xtensa_execve(char*, char**, char**, struct pt_regs*); |
14 | asmlinkage long xtensa_clone(unsigned long, unsigned long, struct pt_regs*); | 14 | asmlinkage long xtensa_clone(unsigned long, unsigned long, struct pt_regs*); |
15 | asmlinkage long xtensa_pipe(int __user *); | ||
16 | asmlinkage long xtensa_ptrace(long, long, long, long); | 15 | asmlinkage long xtensa_ptrace(long, long, long, long); |
17 | asmlinkage long xtensa_sigreturn(struct pt_regs*); | 16 | asmlinkage long xtensa_sigreturn(struct pt_regs*); |
18 | asmlinkage long xtensa_rt_sigreturn(struct pt_regs*); | 17 | asmlinkage 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 | |||
47 | asmlinkage 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 | |||
60 | asmlinkage long xtensa_shmat(int shmid, char __user *shmaddr, int shmflg) | 42 | asmlinkage long xtensa_shmat(int shmid, char __user *shmaddr, int shmflg) |
61 | { | 43 | { |
62 | unsigned long ret; | 44 | unsigned long ret; |