Loading arch/parisc/Kconfig +1 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ config PARISC select MODULES_USE_ELF_RELA select CLONE_BACKWARDS select GENERIC_SIGALTSTACK select GENERIC_COMPAT_RT_SIGACTION select GENERIC_COMPAT_RT_SIGQUEUEINFO select GENERIC_COMPAT_RT_SIGPROCMASK select GENERIC_COMPAT_RT_SIGPENDING Loading arch/parisc/kernel/signal32.c +0 −28 Original line number Diff line number Diff line Loading @@ -60,34 +60,6 @@ sigset_64to32(compat_sigset_t *s32, sigset_t *s64) s32->sig[1] = (s64->sig[0] >> 32) & 0xffffffffUL; } long sys32_rt_sigaction(int sig, const struct sigaction32 __user *act, struct sigaction32 __user *oact, size_t sigsetsize) { struct k_sigaction32 new_sa32, old_sa32; struct k_sigaction new_sa, old_sa; int ret = -EINVAL; if (act) { if (copy_from_user(&new_sa32.sa, act, sizeof new_sa32.sa)) return -EFAULT; new_sa.sa.sa_handler = (__sighandler_t)(unsigned long)new_sa32.sa.sa_handler; new_sa.sa.sa_flags = new_sa32.sa.sa_flags; sigset_32to64(&new_sa.sa.sa_mask, &new_sa32.sa.sa_mask); } ret = do_sigaction(sig, act ? &new_sa : NULL, oact ? &old_sa : NULL); if (!ret && oact) { sigset_64to32(&old_sa32.sa.sa_mask, &old_sa.sa.sa_mask); old_sa32.sa.sa_flags = old_sa.sa.sa_flags; old_sa32.sa.sa_handler = (__sighandler_t32)(unsigned long)old_sa.sa.sa_handler; if (copy_to_user(oact, &old_sa32.sa, sizeof old_sa32.sa)) return -EFAULT; } return ret; } long restore_sigcontext32(struct compat_sigcontext __user *sc, struct compat_regfile __user * rf, struct pt_regs *regs) Loading arch/parisc/kernel/signal32.h +0 −15 Original line number Diff line number Diff line Loading @@ -21,17 +21,6 @@ #include <linux/compat.h> typedef compat_uptr_t compat_sighandler_t; /* Most things should be clean enough to redefine this at will, if care is taken to make libc match. */ struct compat_sigaction { compat_sighandler_t sa_handler; compat_uint_t sa_flags; compat_sigset_t sa_mask; /* mask last for extensibility */ }; /* 32-bit ucontext as seen from an 64-bit kernel */ struct compat_ucontext { compat_uint_t uc_flags; Loading @@ -45,10 +34,6 @@ struct compat_ucontext { /* ELF32 signal handling */ struct k_sigaction32 { struct compat_sigaction sa; }; int copy_siginfo_to_user32 (compat_siginfo_t __user *to, siginfo_t *from); int copy_siginfo_from_user32 (siginfo_t *to, compat_siginfo_t __user *from); Loading arch/parisc/kernel/sys32.h +0 −12 Original line number Diff line number Diff line Loading @@ -33,16 +33,4 @@ set_fs (old_fs); \ } #ifdef CONFIG_COMPAT typedef __u32 __sighandler_t32; struct sigaction32 { __sighandler_t32 sa_handler; unsigned int sa_flags; compat_sigset_t sa_mask; /* mask last for extensibility */ }; #endif #endif arch/parisc/kernel/syscall_table.S +1 −1 Original line number Diff line number Diff line Loading @@ -265,7 +265,7 @@ ENTRY_SAME(prctl) /* signals need a careful review */ ENTRY_SAME(rt_sigreturn_wrapper) ENTRY_DIFF(rt_sigaction) ENTRY_COMP(rt_sigaction) ENTRY_COMP(rt_sigprocmask) /* 175 */ ENTRY_COMP(rt_sigpending) ENTRY_COMP(rt_sigtimedwait) Loading Loading
arch/parisc/Kconfig +1 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ config PARISC select MODULES_USE_ELF_RELA select CLONE_BACKWARDS select GENERIC_SIGALTSTACK select GENERIC_COMPAT_RT_SIGACTION select GENERIC_COMPAT_RT_SIGQUEUEINFO select GENERIC_COMPAT_RT_SIGPROCMASK select GENERIC_COMPAT_RT_SIGPENDING Loading
arch/parisc/kernel/signal32.c +0 −28 Original line number Diff line number Diff line Loading @@ -60,34 +60,6 @@ sigset_64to32(compat_sigset_t *s32, sigset_t *s64) s32->sig[1] = (s64->sig[0] >> 32) & 0xffffffffUL; } long sys32_rt_sigaction(int sig, const struct sigaction32 __user *act, struct sigaction32 __user *oact, size_t sigsetsize) { struct k_sigaction32 new_sa32, old_sa32; struct k_sigaction new_sa, old_sa; int ret = -EINVAL; if (act) { if (copy_from_user(&new_sa32.sa, act, sizeof new_sa32.sa)) return -EFAULT; new_sa.sa.sa_handler = (__sighandler_t)(unsigned long)new_sa32.sa.sa_handler; new_sa.sa.sa_flags = new_sa32.sa.sa_flags; sigset_32to64(&new_sa.sa.sa_mask, &new_sa32.sa.sa_mask); } ret = do_sigaction(sig, act ? &new_sa : NULL, oact ? &old_sa : NULL); if (!ret && oact) { sigset_64to32(&old_sa32.sa.sa_mask, &old_sa.sa.sa_mask); old_sa32.sa.sa_flags = old_sa.sa.sa_flags; old_sa32.sa.sa_handler = (__sighandler_t32)(unsigned long)old_sa.sa.sa_handler; if (copy_to_user(oact, &old_sa32.sa, sizeof old_sa32.sa)) return -EFAULT; } return ret; } long restore_sigcontext32(struct compat_sigcontext __user *sc, struct compat_regfile __user * rf, struct pt_regs *regs) Loading
arch/parisc/kernel/signal32.h +0 −15 Original line number Diff line number Diff line Loading @@ -21,17 +21,6 @@ #include <linux/compat.h> typedef compat_uptr_t compat_sighandler_t; /* Most things should be clean enough to redefine this at will, if care is taken to make libc match. */ struct compat_sigaction { compat_sighandler_t sa_handler; compat_uint_t sa_flags; compat_sigset_t sa_mask; /* mask last for extensibility */ }; /* 32-bit ucontext as seen from an 64-bit kernel */ struct compat_ucontext { compat_uint_t uc_flags; Loading @@ -45,10 +34,6 @@ struct compat_ucontext { /* ELF32 signal handling */ struct k_sigaction32 { struct compat_sigaction sa; }; int copy_siginfo_to_user32 (compat_siginfo_t __user *to, siginfo_t *from); int copy_siginfo_from_user32 (siginfo_t *to, compat_siginfo_t __user *from); Loading
arch/parisc/kernel/sys32.h +0 −12 Original line number Diff line number Diff line Loading @@ -33,16 +33,4 @@ set_fs (old_fs); \ } #ifdef CONFIG_COMPAT typedef __u32 __sighandler_t32; struct sigaction32 { __sighandler_t32 sa_handler; unsigned int sa_flags; compat_sigset_t sa_mask; /* mask last for extensibility */ }; #endif #endif
arch/parisc/kernel/syscall_table.S +1 −1 Original line number Diff line number Diff line Loading @@ -265,7 +265,7 @@ ENTRY_SAME(prctl) /* signals need a careful review */ ENTRY_SAME(rt_sigreturn_wrapper) ENTRY_DIFF(rt_sigaction) ENTRY_COMP(rt_sigaction) ENTRY_COMP(rt_sigprocmask) /* 175 */ ENTRY_COMP(rt_sigpending) ENTRY_COMP(rt_sigtimedwait) Loading