diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-12-25 14:58:56 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2013-02-03 18:16:06 -0500 |
commit | cddc2da13527b20c6acb36878b78af89cb0af447 (patch) | |
tree | 1e1e3ddfa9580dde18acab604a9d84af4f3c7c28 | |
parent | e6a7ad517ae202ab8b813b179ba5ebed1ed93b04 (diff) |
parisc: switch to generic compat rt_sigpending()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r-- | arch/parisc/Kconfig | 1 | ||||
-rw-r--r-- | arch/parisc/kernel/signal32.c | 25 | ||||
-rw-r--r-- | arch/parisc/kernel/syscall_table.S | 2 |
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 | ||
63 | static int | ||
64 | put_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 | |||
75 | int 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 | |||
88 | long | 63 | long |
89 | sys32_rt_sigaction(int sig, const struct sigaction32 __user *act, struct sigaction32 __user *oact, | 64 | sys32_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. |