aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2007-06-04 01:15:50 -0400
committerPaul Mackerras <paulus@samba.org>2007-06-14 08:29:57 -0400
commit69d15f6b352a681f1db9bc70219a3e8e9d503dbf (patch)
tree07c844fcff3bddce3620d0e88e64383b0b1543b6
parent22e38f29328296d9d4cc33e46fd32a63e807abaf (diff)
[POWERPC] Consolidate sys_sigaltstack
sys_sigaltstack is the same on 32bit and 64 and we can consolidate it to signal.c. The only difference is that the 32bit code uses ints for the unused register paramaters and 64bit unsigned long. I've changed it to unsigned long because it's the same width on 32bit. (I also wonder who came up with this awkward calling convention.. :)) Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
-rw-r--r--arch/powerpc/kernel/signal.c7
-rw-r--r--arch/powerpc/kernel/signal_32.c8
-rw-r--r--arch/powerpc/kernel/signal_64.c8
-rw-r--r--include/asm-powerpc/syscalls.h7
4 files changed, 7 insertions, 23 deletions
diff --git a/arch/powerpc/kernel/signal.c b/arch/powerpc/kernel/signal.c
index 88a12544e8b1..325d260abd4e 100644
--- a/arch/powerpc/kernel/signal.c
+++ b/arch/powerpc/kernel/signal.c
@@ -63,3 +63,10 @@ void check_syscall_restart(struct pt_regs *regs, struct k_sigaction *ka,
63 regs->ccr |= 0x10000000; 63 regs->ccr |= 0x10000000;
64 } 64 }
65} 65}
66
67long sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss,
68 unsigned long r5, unsigned long r6, unsigned long r7,
69 unsigned long r8, struct pt_regs *regs)
70{
71 return do_sigaltstack(uss, uoss, regs->gpr[1]);
72}
diff --git a/arch/powerpc/kernel/signal_32.c b/arch/powerpc/kernel/signal_32.c
index e5cc803476a1..f5713bfcc56e 100644
--- a/arch/powerpc/kernel/signal_32.c
+++ b/arch/powerpc/kernel/signal_32.c
@@ -253,14 +253,6 @@ long sys_sigsuspend(old_sigset_t mask)
253 return -ERESTARTNOHAND; 253 return -ERESTARTNOHAND;
254} 254}
255 255
256#ifdef CONFIG_PPC32
257long sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss, int r5,
258 int r6, int r7, int r8, struct pt_regs *regs)
259{
260 return do_sigaltstack(uss, uoss, regs->gpr[1]);
261}
262#endif
263
264long sys_sigaction(int sig, struct old_sigaction __user *act, 256long sys_sigaction(int sig, struct old_sigaction __user *act,
265 struct old_sigaction __user *oact) 257 struct old_sigaction __user *oact)
266{ 258{
diff --git a/arch/powerpc/kernel/signal_64.c b/arch/powerpc/kernel/signal_64.c
index 5d2faf0fbf05..817f1cf4a405 100644
--- a/arch/powerpc/kernel/signal_64.c
+++ b/arch/powerpc/kernel/signal_64.c
@@ -66,14 +66,6 @@ struct rt_sigframe {
66 char abigap[288]; 66 char abigap[288];
67} __attribute__ ((aligned (16))); 67} __attribute__ ((aligned (16)));
68 68
69long sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss, unsigned long r5,
70 unsigned long r6, unsigned long r7, unsigned long r8,
71 struct pt_regs *regs)
72{
73 return do_sigaltstack(uss, uoss, regs->gpr[1]);
74}
75
76
77/* 69/*
78 * Set up the sigcontext for the signal frame. 70 * Set up the sigcontext for the signal frame.
79 */ 71 */
diff --git a/include/asm-powerpc/syscalls.h b/include/asm-powerpc/syscalls.h
index c2fe79d4f90f..b3ca41fc8bb1 100644
--- a/include/asm-powerpc/syscalls.h
+++ b/include/asm-powerpc/syscalls.h
@@ -43,16 +43,9 @@ asmlinkage long ppc_newuname(struct new_utsname __user * name);
43 43
44asmlinkage long sys_rt_sigsuspend(sigset_t __user *unewset, 44asmlinkage long sys_rt_sigsuspend(sigset_t __user *unewset,
45 size_t sigsetsize); 45 size_t sigsetsize);
46
47#ifndef __powerpc64__
48asmlinkage long sys_sigaltstack(const stack_t __user *uss,
49 stack_t __user *uoss, int r5, int r6, int r7, int r8,
50 struct pt_regs *regs);
51#else /* __powerpc64__ */
52asmlinkage long sys_sigaltstack(const stack_t __user *uss, 46asmlinkage long sys_sigaltstack(const stack_t __user *uss,
53 stack_t __user *uoss, unsigned long r5, unsigned long r6, 47 stack_t __user *uoss, unsigned long r5, unsigned long r6,
54 unsigned long r7, unsigned long r8, struct pt_regs *regs); 48 unsigned long r7, unsigned long r8, struct pt_regs *regs);
55#endif /* __powerpc64__ */
56 49
57#endif /* __KERNEL__ */ 50#endif /* __KERNEL__ */
58#endif /* __ASM_POWERPC_SYSCALLS_H */ 51#endif /* __ASM_POWERPC_SYSCALLS_H */