diff options
author | Doug Rabson <dfr@rabson.org> | 2022-12-10 08:38:04 +0000 |
---|---|---|
committer | Warner Losh <imp@bsdimp.com> | 2023-03-01 11:09:18 -0700 |
commit | 4cf41e80848bdca274b350b878881e2fa809ea0a (patch) | |
tree | f5f19122935301139ac70bf0b3a609cb6cb9f044 /bsd-user | |
parent | 627634031092e1514f363fd8659a579398de0f0e (diff) |
bsd-user: Don't truncate the return value from freebsd_syscall
System call return values on FreeBSD are in a register (which is spelled
abi_long in qemu). This was being assigned into an int variable which
causes problems for 64bit targets.
Resolves: https://github.com/qemu-bsd-user/qemu-bsd-user/issues/40
Signed-off-by: Doug Rabson <dfr@rabson.org>
Reviewed-by: Warner Losh <imp@bsdimp.com>
[ Edited commit message for upstreaming into qemu-project ]
Signed-off-by: Warner Losh <imp@bsdimp.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'bsd-user')
-rw-r--r-- | bsd-user/freebsd/os-syscall.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/bsd-user/freebsd/os-syscall.c b/bsd-user/freebsd/os-syscall.c index 57996cad8a..b4a663fc02 100644 --- a/bsd-user/freebsd/os-syscall.c +++ b/bsd-user/freebsd/os-syscall.c @@ -512,7 +512,7 @@ abi_long do_freebsd_syscall(void *cpu_env, int num, abi_long arg1, abi_long arg8) { CPUState *cpu = env_cpu(cpu_env); - int ret; + abi_long ret; trace_guest_user_syscall(cpu, num, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); if (do_strace) { |