| Submitter | Richard Henderson |
|---|---|
| Date | May 3, 2010, 5:07 p.m. |
| Message ID | <1272906475-14480-7-git-send-email-rth@twiddle.net> |
| Download | mbox | patch |
| Permalink | /patch/51518/ |
| State | New |
| Headers | show |
Comments
Patch
diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 8a6cbaf..899b76f 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -5072,10 +5072,15 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, case TARGET_NR_sigsuspend: { sigset_t set; +#if defined(TARGET_ALPHA) + abi_ulong mask = arg1; + target_to_host_old_sigset(&set, &mask); +#else if (!(p = lock_user(VERIFY_READ, arg1, sizeof(target_sigset_t), 1))) goto efault; target_to_host_old_sigset(&set, p); unlock_user(p, arg1, 0); +#endif ret = get_errno(sigsuspend(&set)); } break;
Alpha passes the signal set in a register, not by reference. Signed-off-by: Richard Henderson <rth@twiddle.net> --- linux-user/syscall.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-)