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

frv: switch to generic sigaltstack

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

Al Viro fe761416 0aa0203f

+3 -11
+1
arch/frv/Kconfig
··· 12 12 select ARCH_HAVE_NMI_SAFE_CMPXCHG 13 13 select GENERIC_CPU_DEVICES 14 14 select ARCH_WANT_IPC_PARSE_VERSION 15 + select GENERIC_SIGALTSTACK 15 16 16 17 config ZONE_DMA 17 18 bool
+2 -11
arch/frv/kernel/signal.c
··· 74 74 return ret; 75 75 } 76 76 77 - asmlinkage 78 - int sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss) 79 - { 80 - return do_sigaltstack(uss, uoss, __frame->sp); 81 - } 82 - 83 - 84 77 /* 85 78 * Do a signal return; undo the signal stack. 86 79 */ ··· 166 173 if (restore_sigcontext(&frame->uc.uc_mcontext, &gr8)) 167 174 goto badframe; 168 175 169 - if (do_sigaltstack(&frame->uc.uc_stack, NULL, __frame->sp) == -EFAULT) 176 + if (restore_altstack(&frame->uc.uc_stack)) 170 177 goto badframe; 171 178 172 179 return gr8; ··· 338 345 /* Create the ucontext. */ 339 346 if (__put_user(0, &frame->uc.uc_flags) || 340 347 __put_user(NULL, &frame->uc.uc_link) || 341 - __put_user((void __user *)current->sas_ss_sp, &frame->uc.uc_stack.ss_sp) || 342 - __put_user(sas_ss_flags(__frame->sp), &frame->uc.uc_stack.ss_flags) || 343 - __put_user(current->sas_ss_size, &frame->uc.uc_stack.ss_size)) 348 + __save_altstack(&frame->uc.uc_stack, __frame->sp)) 344 349 goto give_sigsegv; 345 350 346 351 if (setup_sigcontext(&frame->uc.uc_mcontext, set->sig[0]))