> -----Original Message-----
> From: Arnd Bergmann <[email protected]>
> Sent: Monday, June 24, 2024 11:37 AM
> To: [email protected]; [email protected]
> Cc: Arnd Bergmann <[email protected]>; Thomas Bogendoerfer
> <[email protected]>; [email protected]; Helge Deller
> <[email protected]>; [email protected]; David S. Miller
> <[email protected]>; Andreas Larsson <[email protected]>;
> [email protected]; Michael Ellerman <[email protected]>; Nicholas
> Piggin <[email protected]>; Christophe Leroy
> <[email protected]>; Naveen N . Rao
> <[email protected]>; [email protected]; Brian Cain
> <[email protected]>; [email protected]; Guo Ren
> <[email protected]>; [email protected]; Heiko Carstens
> <[email protected]>; [email protected]; Rich Felker
> <[email protected]>; John Paul Adrian Glaubitz <[email protected]>;
> [email protected]; H. Peter Anvin <[email protected]>; Alexander Viro
> <[email protected]>; Christian Brauner <[email protected]>; linux-
> [email protected]; [email protected];
> [email protected]; [email protected]
> Subject: [PATCH v2 09/13] csky, hexagon: fix broken sys_sync_file_range
>
> WARNING: This email originated from outside of Qualcomm. Please be wary of
> any links or attachments, and do not enable macros.
>
> From: Arnd Bergmann <[email protected]>
>
> Both of these architectures require u64 function arguments to be
> passed in even/odd pairs of registers or stack slots, which in case of
> sync_file_range would result in a seven-argument system call that is
> not currently possible. The system call is therefore incompatible with
> all existing binaries.
>
> While it would be possible to implement support for seven arguments
> like on mips, it seems better to use a six-argument version, either
> with the normal argument order but misaligned as on most architectures
> or with the reordered sync_file_range2() calling conventions as on
> arm and powerpc.
>
> Cc: [email protected]
> Acked-by: Guo Ren <[email protected]>
> Signed-off-by: Arnd Bergmann <[email protected]>
> ---
> arch/csky/include/uapi/asm/unistd.h | 1 +
> arch/hexagon/include/uapi/asm/unistd.h | 1 +
> 2 files changed, 2 insertions(+)
>
> diff --git a/arch/csky/include/uapi/asm/unistd.h
> b/arch/csky/include/uapi/asm/unistd.h
> index 7ff6a2466af1..e0594b6370a6 100644
> --- a/arch/csky/include/uapi/asm/unistd.h
> +++ b/arch/csky/include/uapi/asm/unistd.h
> @@ -6,6 +6,7 @@
> #define __ARCH_WANT_SYS_CLONE3
> #define __ARCH_WANT_SET_GET_RLIMIT
> #define __ARCH_WANT_TIME32_SYSCALLS
> +#define __ARCH_WANT_SYNC_FILE_RANGE2
> #include <asm-generic/unistd.h>
>
> #define __NR_set_thread_area (__NR_arch_specific_syscall + 0)
> diff --git a/arch/hexagon/include/uapi/asm/unistd.h
> b/arch/hexagon/include/uapi/asm/unistd.h
> index 432c4db1b623..21ae22306b5d 100644
> --- a/arch/hexagon/include/uapi/asm/unistd.h
> +++ b/arch/hexagon/include/uapi/asm/unistd.h
> @@ -36,5 +36,6 @@
> #define __ARCH_WANT_SYS_VFORK
> #define __ARCH_WANT_SYS_FORK
> #define __ARCH_WANT_TIME32_SYSCALLS
> +#define __ARCH_WANT_SYNC_FILE_RANGE2
Acked-by: Brian Cain <[email protected]>
>
> #include <asm-generic/unistd.h>
> --
> 2.39.2