[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 02/10] linux-user/alpha: Fix sigsuspend for big-endian hosts
From: |
Laurent Vivier |
Subject: |
[PULL 02/10] linux-user/alpha: Fix sigsuspend for big-endian hosts |
Date: |
Thu, 24 Mar 2022 09:20:08 +0100 |
From: Richard Henderson <richard.henderson@linaro.org>
On alpha, the sigset argument for sigsuspend is in a register.
When we drop that into memory that happens in host-endianness,
but target_to_host_old_sigset will treat it as target-endianness.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20220315084308.433109-2-richard.henderson@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
linux-user/syscall.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 75ed71eb461d..77cd88b53785 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -9559,7 +9559,8 @@ static abi_long do_syscall1(void *cpu_env, int num,
abi_long arg1,
{
TaskState *ts = cpu->opaque;
#if defined(TARGET_ALPHA)
- abi_ulong mask = arg1;
+ /* target_to_host_old_sigset will bswap back */
+ abi_ulong mask = tswapal(arg1);
target_to_host_old_sigset(&ts->sigsuspend_mask, &mask);
#else
if (!(p = lock_user(VERIFY_READ, arg1, sizeof(target_sigset_t),
1)))
--
2.35.1
- [PULL 00/10] Linux user for 7.0 patches, Laurent Vivier, 2022/03/24
- [PULL 02/10] linux-user/alpha: Fix sigsuspend for big-endian hosts,
Laurent Vivier <=
- [PULL 03/10] linux-user: Split out helpers for sigsuspend, Laurent Vivier, 2022/03/24
- [PULL 06/10] linux-user: Properly handle sigset arg to ppoll, Laurent Vivier, 2022/03/24
- [PULL 08/10] linux-user/arm: Implement __kernel_memory_barrier, Laurent Vivier, 2022/03/24
- [PULL 10/10] linux-user/arm: Implement __kernel_cmpxchg64 with host atomics, Laurent Vivier, 2022/03/24
- [PULL 07/10] linux-user: Fix missing space in error message, Laurent Vivier, 2022/03/24
- [PULL 04/10] linux-user: Properly handle sigset arg to pselect, Laurent Vivier, 2022/03/24
- [PULL 05/10] linux-user: Properly handle sigset arg to epoll_pwait, Laurent Vivier, 2022/03/24
- [PULL 09/10] linux-user/arm: Implement __kernel_cmpxchg with host atomics, Laurent Vivier, 2022/03/24
- [PULL 01/10] linux-user: Fix syscall parameter handling for MIPS n32, Laurent Vivier, 2022/03/24
- Re: [PULL 00/10] Linux user for 7.0 patches, Peter Maydell, 2022/03/24