summaryrefslogtreecommitdiffstats
path: root/arch/parisc
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 /arch/parisc
parente6a7ad517ae202ab8b813b179ba5ebed1ed93b04 (diff)
downloadlinux-cddc2da13527b20c6acb36878b78af89cb0af447.tar.gz
linux-cddc2da13527b20c6acb36878b78af89cb0af447.tar.bz2
linux-cddc2da13527b20c6acb36878b78af89cb0af447.zip
parisc: switch to generic compat rt_sigpending()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/parisc')
-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
select CLONE_BACKWARDS
select GENERIC_SIGALTSTACK
select GENERIC_COMPAT_RT_SIGPROCMASK
+ select GENERIC_COMPAT_RT_SIGPENDING
help
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)
s32->sig[1] = (s64->sig[0] >> 32) & 0xffffffffUL;
}
-static int
-put_sigset32(compat_sigset_t __user *up, sigset_t *set, size_t sz)
-{
- compat_sigset_t s;
-
- if (sz != sizeof *set)
- return -EINVAL;
- sigset_64to32(&s, set);
-
- return copy_to_user(up, &s, sizeof s);
-}
-
-int sys32_rt_sigpending(compat_sigset_t __user *uset, unsigned int sigsetsize)
-{
- int ret;
- sigset_t set;
-
- KERNEL_SYSCALL(ret, sys_rt_sigpending, (sigset_t __user *)&set, sigsetsize);
-
- if (!ret && put_sigset32(uset, &set, sigsetsize))
- return -EFAULT;
-
- return ret;
-}
-
long
sys32_rt_sigaction(int sig, const struct sigaction32 __user *act, struct sigaction32 __user *oact,
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 @@
ENTRY_SAME(rt_sigreturn_wrapper)
ENTRY_DIFF(rt_sigaction)
ENTRY_COMP(rt_sigprocmask) /* 175 */
- ENTRY_DIFF(rt_sigpending)
+ ENTRY_COMP(rt_sigpending)
ENTRY_COMP(rt_sigtimedwait)
/* even though the struct siginfo_t is different, it appears like
* all the paths use values which should be same wide and narrow.