On Sat, Feb 4, 2017 at 4:07 AM, Stas Sergeev <[email protected]> wrote:
> Currently SS_AUTODISARM is not supported in compatibility
> mode, but does not return -EINVAL either. This makes dosemu
> built with -m32 on x86_64 to crash. Also the kernel's sigaltstack
> selftest fails if compiled with -m32.
>
> This patch adds the needed support. It also improves the
> selftest output a little (%i changed to %x for bitmasks).
>
> Signed-off-by: Stas Sergeev <[email protected]>
>

Spurious newline.  Also, should this be cc:stable?

> CC: Shuah Khan <[email protected]>
> CC: Andrew Morton <[email protected]>
> CC: Jiri Kosina <[email protected]>
> CC: Al Viro <[email protected]>
> CC: Stephen Bates <[email protected]>
> CC: Milosz Tanski <[email protected]>
> CC: Andy Lutomirski <[email protected]>
> CC: Ingo Molnar <[email protected]>
> CC: "Peter Zijlstra (Intel)" <[email protected]>
> CC: Helge Deller <[email protected]>
> CC: Wang Xiaoqiang <[email protected]>
> CC: Dave Hansen <[email protected]>
> CC: Sasha Levin <[email protected]>
> CC: [email protected]
> ---
>  include/linux/compat.h                    |  4 +++-
>  kernel/signal.c                           | 11 +++++++++--
>  tools/testing/selftests/sigaltstack/sas.c |  7 ++++---
>  3 files changed, 16 insertions(+), 6 deletions(-)
>
> diff --git a/include/linux/compat.h b/include/linux/compat.h
> index 6360939..d8535a4 100644
> --- a/include/linux/compat.h
> +++ b/include/linux/compat.h
> @@ -711,8 +711,10 @@ int __compat_save_altstack(compat_stack_t __user *, 
> unsigned long);
>         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(sas_ss_flags(sp), &__uss->ss_flags); \
> +       put_user_ex(t->sas_ss_flags, &__uss->ss_flags); \

Should the sas_ss_flags() helper be deleted, perhaps?  This code seems
a bit odd -- it no longer does the on_sig_stack(sp) check..  (It
matches the non-compat code.)

Reply via email to