Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

frv: switch to generic old sigaction()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

Al Viro 177b6703 39e08a9b

+1 -39
+1
arch/frv/Kconfig
··· 14 14 select ARCH_WANT_IPC_PARSE_VERSION 15 15 select GENERIC_SIGALTSTACK 16 16 select OLD_SIGSUSPEND3 17 + select OLD_SIGACTION 17 18 18 19 config ZONE_DMA 19 20 bool
-7
arch/frv/include/asm/signal.h
··· 3 3 4 4 #include <uapi/asm/signal.h> 5 5 6 - struct old_sigaction { 7 - __sighandler_t sa_handler; 8 - old_sigset_t sa_mask; 9 - unsigned long sa_flags; 10 - __sigrestore_t sa_restorer; 11 - }; 12 - 13 6 #endif /* _ASM_SIGNAL_H */
-32
arch/frv/kernel/signal.c
··· 32 32 unsigned long GOT; 33 33 }; 34 34 35 - asmlinkage int sys_sigaction(int sig, 36 - const struct old_sigaction __user *act, 37 - struct old_sigaction __user *oact) 38 - { 39 - struct k_sigaction new_ka, old_ka; 40 - int ret; 41 - 42 - if (act) { 43 - old_sigset_t mask; 44 - if (!access_ok(VERIFY_READ, act, sizeof(*act)) || 45 - __get_user(new_ka.sa.sa_handler, &act->sa_handler) || 46 - __get_user(new_ka.sa.sa_restorer, &act->sa_restorer) || 47 - __get_user(new_ka.sa.sa_flags, &act->sa_flags) || 48 - __get_user(mask, &act->sa_mask)) 49 - return -EFAULT; 50 - siginitset(&new_ka.sa.sa_mask, mask); 51 - } 52 - 53 - ret = do_sigaction(sig, act ? &new_ka : NULL, oact ? &old_ka : NULL); 54 - 55 - if (!ret && oact) { 56 - if (!access_ok(VERIFY_WRITE, oact, sizeof(*oact)) || 57 - __put_user(old_ka.sa.sa_handler, &oact->sa_handler) || 58 - __put_user(old_ka.sa.sa_restorer, &oact->sa_restorer) || 59 - __put_user(old_ka.sa.sa_flags, &oact->sa_flags) || 60 - __put_user(old_ka.sa.sa_mask.sig[0], &oact->sa_mask)) 61 - return -EFAULT; 62 - } 63 - 64 - return ret; 65 - } 66 - 67 35 /* 68 36 * Do a signal return; undo the signal stack. 69 37 */