diff options
-rw-r--r-- | arch/m32r/Kconfig | 1 | ||||
-rw-r--r-- | arch/m32r/kernel/signal.c | 16 |
2 files changed, 3 insertions, 14 deletions
diff --git a/arch/m32r/Kconfig b/arch/m32r/Kconfig index f807721e19a5..1f550d4dd5d0 100644 --- a/arch/m32r/Kconfig +++ b/arch/m32r/Kconfig | |||
@@ -15,6 +15,7 @@ config M32R | |||
15 | select GENERIC_ATOMIC64 | 15 | select GENERIC_ATOMIC64 |
16 | select ARCH_USES_GETTIMEOFFSET | 16 | select ARCH_USES_GETTIMEOFFSET |
17 | select MODULES_USE_ELF_RELA | 17 | select MODULES_USE_ELF_RELA |
18 | select GENERIC_SIGALTSTACK | ||
18 | 19 | ||
19 | config SBUS | 20 | config SBUS |
20 | bool | 21 | bool |
diff --git a/arch/m32r/kernel/signal.c b/arch/m32r/kernel/signal.c index 6e3c26a1607c..d503568cb753 100644 --- a/arch/m32r/kernel/signal.c +++ b/arch/m32r/kernel/signal.c | |||
@@ -27,15 +27,6 @@ | |||
27 | 27 | ||
28 | #define DEBUG_SIG 0 | 28 | #define DEBUG_SIG 0 |
29 | 29 | ||
30 | asmlinkage int | ||
31 | sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss, | ||
32 | unsigned long r2, unsigned long r3, unsigned long r4, | ||
33 | unsigned long r5, unsigned long r6, struct pt_regs *regs) | ||
34 | { | ||
35 | return do_sigaltstack(uss, uoss, regs->spu); | ||
36 | } | ||
37 | |||
38 | |||
39 | /* | 30 | /* |
40 | * Do a signal return; undo the signal stack. | 31 | * Do a signal return; undo the signal stack. |
41 | */ | 32 | */ |
@@ -113,7 +104,7 @@ sys_rt_sigreturn(unsigned long r0, unsigned long r1, | |||
113 | if (restore_sigcontext(regs, &frame->uc.uc_mcontext, &result)) | 104 | if (restore_sigcontext(regs, &frame->uc.uc_mcontext, &result)) |
114 | goto badframe; | 105 | goto badframe; |
115 | 106 | ||
116 | if (do_sigaltstack(&frame->uc.uc_stack, NULL, regs->spu) == -EFAULT) | 107 | if (restore_altstack(&frame->uc.uc_stack)) |
117 | goto badframe; | 108 | goto badframe; |
118 | 109 | ||
119 | return result; | 110 | return result; |
@@ -213,10 +204,7 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, | |||
213 | /* Create the ucontext. */ | 204 | /* Create the ucontext. */ |
214 | err |= __put_user(0, &frame->uc.uc_flags); | 205 | err |= __put_user(0, &frame->uc.uc_flags); |
215 | err |= __put_user(0, &frame->uc.uc_link); | 206 | err |= __put_user(0, &frame->uc.uc_link); |
216 | err |= __put_user(current->sas_ss_sp, &frame->uc.uc_stack.ss_sp); | 207 | err |= __save_altstack(&frame->uc.uc_stack, regs->spu); |
217 | err |= __put_user(sas_ss_flags(regs->spu), | ||
218 | &frame->uc.uc_stack.ss_flags); | ||
219 | err |= __put_user(current->sas_ss_size, &frame->uc.uc_stack.ss_size); | ||
220 | err |= setup_sigcontext(&frame->uc.uc_mcontext, regs, set->sig[0]); | 208 | err |= setup_sigcontext(&frame->uc.uc_mcontext, regs, set->sig[0]); |
221 | err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); | 209 | err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); |
222 | if (err) | 210 | if (err) |