aboutsummaryrefslogtreecommitdiff
path: root/bsd-user/freebsd/os-syscall.c
diff options
context:
space:
mode:
authorDoug Rabson <dfr@rabson.org>2022-12-10 08:38:04 +0000
committerWarner Losh <imp@bsdimp.com>2023-03-01 11:09:18 -0700
commit4cf41e80848bdca274b350b878881e2fa809ea0a (patch)
treef5f19122935301139ac70bf0b3a609cb6cb9f044 /bsd-user/freebsd/os-syscall.c
parent627634031092e1514f363fd8659a579398de0f0e (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/freebsd/os-syscall.c')
-rw-r--r--bsd-user/freebsd/os-syscall.c2
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) {