From: Riku Voipio Date: Tue, 15 Jul 2014 14:01:55 +0000 (+0300) Subject: linux-user: use TARGET_SA_ONSTACK in get_sigframe X-Git-Tag: qemu-xen-4.6.0-rc1~305^2 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=b545f63fa974ebffd55d70ca615572d497e543dc;p=qemu-upstream-4.6-testing.git linux-user: use TARGET_SA_ONSTACK in get_sigframe As reported by Laurent, which should use TARGET_SA_ONSTACK on arm, microblaze and openrisc targets like we do on all others. Practical matter is minimal as for almost all archs SA_ONSTACK is 0x08000000: http://lxr.free-electrons.com/ident?i=SA_ONSTACK Reported-by: Laurent Desnogues Signed-off-by: Riku Voipio --- diff --git a/linux-user/signal.c b/linux-user/signal.c index f3b43787f..1141054be 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -1305,7 +1305,7 @@ static abi_ulong get_sigframe(struct target_sigaction *ka, CPUARMState *env) /* * This is the X/Open sanctioned signal stack switching. */ - if ((ka->sa_flags & SA_ONSTACK) && !sas_ss_flags(sp)) { + if ((ka->sa_flags & TARGET_SA_ONSTACK) && !sas_ss_flags(sp)) { sp = target_sigaltstack_used.ss_sp + target_sigaltstack_used.ss_size; } @@ -3509,8 +3509,9 @@ static abi_ulong get_sigframe(struct target_sigaction *ka, { abi_ulong sp = env->regs[1]; - if ((ka->sa_flags & SA_ONSTACK) != 0 && !on_sig_stack(sp)) + if ((ka->sa_flags & TARGET_SA_ONSTACK) != 0 && !on_sig_stack(sp)) { sp = target_sigaltstack_used.ss_sp + target_sigaltstack_used.ss_size; + } return ((sp - frame_size) & -8UL); } @@ -3891,7 +3892,7 @@ static inline abi_ulong get_sigframe(struct target_sigaction *ka, /* redzone */ /* This is the X/Open sanctioned signal stack switching. */ - if ((ka->sa_flags & SA_ONSTACK) != 0 && !onsigstack) { + if ((ka->sa_flags & TARGET_SA_ONSTACK) != 0 && !onsigstack) { sp = target_sigaltstack_used.ss_sp + target_sigaltstack_used.ss_size; }