[PATCH] linux: Use long int for syscall return value
Adhemerval Zanella Netto
adhemerval.zanella@linaro.org
Wed Nov 30 13:53:32 GMT 2022
On 29/11/22 08:24, XingLi wrote:
> From: Xing Li <lixing@loongson.cn>
>
> The linux syscall ABI returns long, so the generic syscall code for
> linux should use long for the return value.
>
> This fixes the truncation of the return value of the syscall function
> when that does not fit into an int.
> ---
> sysdeps/unix/sysv/linux/syscall.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/sysdeps/unix/sysv/linux/syscall.c b/sysdeps/unix/sysv/linux/syscall.c
> index 7303ba7188..8cb0b66b1c 100644
> --- a/sysdeps/unix/sysv/linux/syscall.c
> +++ b/sysdeps/unix/sysv/linux/syscall.c
> @@ -33,7 +33,7 @@ syscall (long int number, ...)
> long int a5 = va_arg (args, long int);
> va_end (args);
>
> - int r = INTERNAL_SYSCALL_NCS_CALL (number, a0, a1, a2, a3, a4, a5);
> + long int r = INTERNAL_SYSCALL_NCS_CALL (number, a0, a1, a2, a3, a4, a5);
> if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (r)))
> {
> __set_errno (-r);
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
More information about the Libc-alpha
mailing list