|
@@ -3573,9 +3573,8 @@ int __save_altstack(stack_t __user *uss, unsigned long sp)
|
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_COMPAT
|
|
|
-COMPAT_SYSCALL_DEFINE2(sigaltstack,
|
|
|
- const compat_stack_t __user *, uss_ptr,
|
|
|
- compat_stack_t __user *, uoss_ptr)
|
|
|
+static int do_compat_sigaltstack(const compat_stack_t __user *uss_ptr,
|
|
|
+ compat_stack_t __user *uoss_ptr)
|
|
|
{
|
|
|
stack_t uss, uoss;
|
|
|
int ret;
|
|
@@ -3602,9 +3601,16 @@ COMPAT_SYSCALL_DEFINE2(sigaltstack,
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
+COMPAT_SYSCALL_DEFINE2(sigaltstack,
|
|
|
+ const compat_stack_t __user *, uss_ptr,
|
|
|
+ compat_stack_t __user *, uoss_ptr)
|
|
|
+{
|
|
|
+ return do_compat_sigaltstack(uss_ptr, uoss_ptr);
|
|
|
+}
|
|
|
+
|
|
|
int compat_restore_altstack(const compat_stack_t __user *uss)
|
|
|
{
|
|
|
- int err = compat_sys_sigaltstack(uss, NULL);
|
|
|
+ int err = do_compat_sigaltstack(uss, NULL);
|
|
|
/* squash all but -EFAULT for now */
|
|
|
return err == -EFAULT ? err : 0;
|
|
|
}
|