new helper: restore_altstack()

to be used by rt_sigreturn instances

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Al Viro 2012-11-18 15:29:16 -05:00
parent 031b656698
commit 5c49574ffd
2 changed files with 9 additions and 0 deletions

View File

@ -385,4 +385,6 @@ int unhandled_signal(struct task_struct *tsk, int sig);
void signals_init(void);
int restore_altstack(const stack_t __user *);
#endif /* _LINUX_SIGNAL_H */

View File

@ -3103,6 +3103,13 @@ out:
return error;
}
int restore_altstack(const stack_t __user *uss)
{
int err = do_sigaltstack(uss, NULL, current_user_stack_pointer());
/* squash all but EFAULT for now */
return err == -EFAULT ? err : 0;
}
#ifdef __ARCH_WANT_SYS_SIGPENDING
/**