diff options
Diffstat (limited to 'include/linux/compat.h')
| -rw-r--r-- | include/linux/compat.h | 9 | 
1 files changed, 5 insertions, 4 deletions
diff --git a/include/linux/compat.h b/include/linux/compat.h index df2475be134a..0480ba4db592 100644 --- a/include/linux/compat.h +++ b/include/linux/compat.h @@ -454,12 +454,13 @@ extern void __user *compat_alloc_user_space(unsigned long len);  int compat_restore_altstack(const compat_stack_t __user *uss);  int __compat_save_altstack(compat_stack_t __user *, unsigned long); -#define compat_save_altstack_ex(uss, sp) do { \ +#define unsafe_compat_save_altstack(uss, sp, label) do { \  	compat_stack_t __user *__uss = uss; \  	struct task_struct *t = current; \ -	put_user_ex(ptr_to_compat((void __user *)t->sas_ss_sp), &__uss->ss_sp); \ -	put_user_ex(t->sas_ss_flags, &__uss->ss_flags); \ -	put_user_ex(t->sas_ss_size, &__uss->ss_size); \ +	unsafe_put_user(ptr_to_compat((void __user *)t->sas_ss_sp), \ +			&__uss->ss_sp, label); \ +	unsafe_put_user(t->sas_ss_flags, &__uss->ss_flags, label); \ +	unsafe_put_user(t->sas_ss_size, &__uss->ss_size, label); \  	if (t->sas_ss_flags & SS_AUTODISARM) \  		sas_ss_reset(t); \  } while (0);  |