diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-12-25 19:28:15 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2013-02-03 18:16:04 -0500 |
commit | 33f9f78eec7e332dac6bee9cf66cd2bd435b7419 (patch) | |
tree | 824a1f190561ac68814ae514bad390a8c9e32d57 | |
parent | 7d1d990ff161bdd2f0901a0916f35d272adf4c0b (diff) |
mn10300: switch to generic old sigaction()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r-- | arch/mn10300/Kconfig | 1 | ||||
-rw-r--r-- | arch/mn10300/include/asm/signal.h | 7 | ||||
-rw-r--r-- | arch/mn10300/kernel/signal.c | 35 |
3 files changed, 1 insertions, 42 deletions
diff --git a/arch/mn10300/Kconfig b/arch/mn10300/Kconfig index f15703506d3f..12bf06f9abe5 100644 --- a/arch/mn10300/Kconfig +++ b/arch/mn10300/Kconfig | |||
@@ -12,6 +12,7 @@ config MN10300 | |||
12 | select MODULES_USE_ELF_RELA | 12 | select MODULES_USE_ELF_RELA |
13 | select GENERIC_SIGALTSTACK | 13 | select GENERIC_SIGALTSTACK |
14 | select OLD_SIGSUSPEND3 | 14 | select OLD_SIGSUSPEND3 |
15 | select OLD_SIGACTION | ||
15 | 16 | ||
16 | config AM33_2 | 17 | config AM33_2 |
17 | def_bool n | 18 | def_bool n |
diff --git a/arch/mn10300/include/asm/signal.h b/arch/mn10300/include/asm/signal.h index 288ade5ec94e..214ff5e9fe60 100644 --- a/arch/mn10300/include/asm/signal.h +++ b/arch/mn10300/include/asm/signal.h | |||
@@ -26,13 +26,6 @@ typedef struct { | |||
26 | unsigned long sig[_NSIG_WORDS]; | 26 | unsigned long sig[_NSIG_WORDS]; |
27 | } sigset_t; | 27 | } sigset_t; |
28 | 28 | ||
29 | struct old_sigaction { | ||
30 | __sighandler_t sa_handler; | ||
31 | old_sigset_t sa_mask; | ||
32 | unsigned long sa_flags; | ||
33 | __sigrestore_t sa_restorer; | ||
34 | }; | ||
35 | |||
36 | #define __ARCH_HAS_SA_RESTORER | 29 | #define __ARCH_HAS_SA_RESTORER |
37 | 30 | ||
38 | #include <asm/sigcontext.h> | 31 | #include <asm/sigcontext.h> |
diff --git a/arch/mn10300/kernel/signal.c b/arch/mn10300/kernel/signal.c index d336d64f95f2..9dfac5cd16e6 100644 --- a/arch/mn10300/kernel/signal.c +++ b/arch/mn10300/kernel/signal.c | |||
@@ -32,41 +32,6 @@ | |||
32 | #define DEBUG_SIG 0 | 32 | #define DEBUG_SIG 0 |
33 | 33 | ||
34 | /* | 34 | /* |
35 | * set signal action syscall | ||
36 | */ | ||
37 | asmlinkage long sys_sigaction(int sig, | ||
38 | const struct old_sigaction __user *act, | ||
39 | struct old_sigaction __user *oact) | ||
40 | { | ||
41 | struct k_sigaction new_ka, old_ka; | ||
42 | int ret; | ||
43 | |||
44 | if (act) { | ||
45 | old_sigset_t mask; | ||
46 | if (verify_area(VERIFY_READ, act, sizeof(*act)) || | ||
47 | __get_user(new_ka.sa.sa_handler, &act->sa_handler) || | ||
48 | __get_user(new_ka.sa.sa_restorer, &act->sa_restorer) || | ||
49 | __get_user(new_ka.sa.sa_flags, &act->sa_flags) || | ||
50 | __get_user(mask, &act->sa_mask)) | ||
51 | return -EFAULT; | ||
52 | siginitset(&new_ka.sa.sa_mask, mask); | ||
53 | } | ||
54 | |||
55 | ret = do_sigaction(sig, act ? &new_ka : NULL, oact ? &old_ka : NULL); | ||
56 | |||
57 | if (!ret && oact) { | ||
58 | if (verify_area(VERIFY_WRITE, oact, sizeof(*oact)) || | ||
59 | __put_user(old_ka.sa.sa_handler, &oact->sa_handler) || | ||
60 | __put_user(old_ka.sa.sa_restorer, &oact->sa_restorer) || | ||
61 | __put_user(old_ka.sa.sa_flags, &oact->sa_flags) || | ||
62 | __put_user(old_ka.sa.sa_mask.sig[0], &oact->sa_mask)) | ||
63 | return -EFAULT; | ||
64 | } | ||
65 | |||
66 | return ret; | ||
67 | } | ||
68 | |||
69 | /* | ||
70 | * do a signal return; undo the signal stack. | 35 | * do a signal return; undo the signal stack. |
71 | */ | 36 | */ |
72 | static int restore_sigcontext(struct pt_regs *regs, | 37 | static int restore_sigcontext(struct pt_regs *regs, |