Message ID | 20240624163707.299494-10-arnd@kernel.org |
---|---|
State | New |
Headers | show |
Series | linux system call fixes | expand |
> -----Original Message----- > From: Arnd Bergmann <arnd@kernel.org> > Sent: Monday, June 24, 2024 11:37 AM > To: linux-arch@vger.kernel.org; linux-kernel@vger.kernel.org > Cc: Arnd Bergmann <arnd@arndb.de>; Thomas Bogendoerfer > <tsbogend@alpha.franken.de>; linux-mips@vger.kernel.org; Helge Deller > <deller@gmx.de>; linux-parisc@vger.kernel.org; David S. Miller > <davem@davemloft.net>; Andreas Larsson <andreas@gaisler.com>; > sparclinux@vger.kernel.org; Michael Ellerman <mpe@ellerman.id.au>; Nicholas > Piggin <npiggin@gmail.com>; Christophe Leroy > <christophe.leroy@csgroup.eu>; Naveen N . Rao > <naveen.n.rao@linux.ibm.com>; linuxppc-dev@lists.ozlabs.org; Brian Cain > <bcain@quicinc.com>; linux-hexagon@vger.kernel.org; Guo Ren > <guoren@kernel.org>; linux-csky@vger.kernel.org; Heiko Carstens > <hca@linux.ibm.com>; linux-s390@vger.kernel.org; Rich Felker > <dalias@libc.org>; John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>; > linux-sh@vger.kernel.org; H. Peter Anvin <hpa@zytor.com>; Alexander Viro > <viro@zeniv.linux.org.uk>; Christian Brauner <brauner@kernel.org>; linux- > fsdevel@vger.kernel.org; libc-alpha@sourceware.org; > musl@lists.openwall.com; stable@vger.kernel.org > 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 <arnd@arndb.de> > > 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: stable@vger.kernel.org > Acked-by: Guo Ren <guoren@kernel.org> > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > 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 <bcain@quicinc.com> > > #include <asm-generic/unistd.h> > -- > 2.39.2
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 #include <asm-generic/unistd.h>