aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-12-25 14:58:56 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2013-02-03 18:16:06 -0500
commitcddc2da13527b20c6acb36878b78af89cb0af447 (patch)
tree1e1e3ddfa9580dde18acab604a9d84af4f3c7c28
parente6a7ad517ae202ab8b813b179ba5ebed1ed93b04 (diff)
parisc: switch to generic compat rt_sigpending()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r--arch/parisc/Kconfig1
-rw-r--r--arch/parisc/kernel/signal32.c25
-rw-r--r--arch/parisc/kernel/syscall_table.S2
3 files changed, 2 insertions, 26 deletions
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
index 0a8badaff8e3..8755f8e482a4 100644
--- a/arch/parisc/Kconfig
+++ b/arch/parisc/Kconfig
@@ -25,6 +25,7 @@ config PARISC
25 select CLONE_BACKWARDS 25 select CLONE_BACKWARDS
26 select GENERIC_SIGALTSTACK 26 select GENERIC_SIGALTSTACK
27 select GENERIC_COMPAT_RT_SIGPROCMASK 27 select GENERIC_COMPAT_RT_SIGPROCMASK
28 select GENERIC_COMPAT_RT_SIGPENDING
28 29
29 help 30 help
30 The PA-RISC microprocessor is designed by Hewlett-Packard and used 31 The PA-RISC microprocessor is designed by Hewlett-Packard and used
diff --git a/arch/parisc/kernel/signal32.c b/arch/parisc/kernel/signal32.c
index 49cb23462371..1d41848ed27d 100644
--- a/arch/parisc/kernel/signal32.c
+++ b/arch/parisc/kernel/signal32.c
@@ -60,31 +60,6 @@ sigset_64to32(compat_sigset_t *s32, sigset_t *s64)
60 s32->sig[1] = (s64->sig[0] >> 32) & 0xffffffffUL; 60 s32->sig[1] = (s64->sig[0] >> 32) & 0xffffffffUL;
61} 61}
62 62
63static int
64put_sigset32(compat_sigset_t __user *up, sigset_t *set, size_t sz)
65{
66 compat_sigset_t s;
67
68 if (sz != sizeof *set)
69 return -EINVAL;
70 sigset_64to32(&s, set);
71
72 return copy_to_user(up, &s, sizeof s);
73}
74
75int sys32_rt_sigpending(compat_sigset_t __user *uset, unsigned int sigsetsize)
76{
77 int ret;
78 sigset_t set;
79
80 KERNEL_SYSCALL(ret, sys_rt_sigpending, (sigset_t __user *)&set, sigsetsize);
81
82 if (!ret && put_sigset32(uset, &set, sigsetsize))
83 return -EFAULT;
84
85 return ret;
86}
87
88long 63long
89sys32_rt_sigaction(int sig, const struct sigaction32 __user *act, struct sigaction32 __user *oact, 64sys32_rt_sigaction(int sig, const struct sigaction32 __user *act, struct sigaction32 __user *oact,
90 size_t sigsetsize) 65 size_t sigsetsize)
diff --git a/arch/parisc/kernel/syscall_table.S b/arch/parisc/kernel/syscall_table.S
index 3ea2fe29f7d5..3b083dd208cf 100644
--- a/arch/parisc/kernel/syscall_table.S
+++ b/arch/parisc/kernel/syscall_table.S
@@ -267,7 +267,7 @@
267 ENTRY_SAME(rt_sigreturn_wrapper) 267 ENTRY_SAME(rt_sigreturn_wrapper)
268 ENTRY_DIFF(rt_sigaction) 268 ENTRY_DIFF(rt_sigaction)
269 ENTRY_COMP(rt_sigprocmask) /* 175 */ 269 ENTRY_COMP(rt_sigprocmask) /* 175 */
270 ENTRY_DIFF(rt_sigpending) 270 ENTRY_COMP(rt_sigpending)
271 ENTRY_COMP(rt_sigtimedwait) 271 ENTRY_COMP(rt_sigtimedwait)
272 /* even though the struct siginfo_t is different, it appears like 272 /* even though the struct siginfo_t is different, it appears like
273 * all the paths use values which should be same wide and narrow. 273 * all the paths use values which should be same wide and narrow.