diff options
author | Arnd Bergmann <arnd@arndb.de> | 2024-06-20 15:36:30 +0200 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2024-07-10 14:23:38 +0200 |
commit | 36d69c29759ec2299c1537e292a466eab3824087 (patch) | |
tree | 32cd214e245648001dd70cb495985d9c073e3bf5 /arch/hexagon | |
parent | f840cab63efe802638bf536221deecfbf3f569ed (diff) |
hexagon: use new system call table
The uapi/asm/unistd_32.h and asm/syscall_table_32.h headers can now be
generated from scripts/syscall.tbl, which makes this consistent with
the other architectures that have their own syscall.tbl.
The time32, stat64, rlimit and renameat entries in the syscall_abis_32
line are for system calls that were part of the generic ABI when
arch/hexagon got added but are no longer enabled by default for new
architectures.
As a side-effect, calling an unimplemented syscall now return -ENOSYS
rather than branching into a NULL pointer.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/hexagon')
-rw-r--r-- | arch/hexagon/include/asm/Kbuild | 2 | ||||
-rw-r--r-- | arch/hexagon/include/asm/unistd.h | 10 | ||||
-rw-r--r-- | arch/hexagon/include/uapi/asm/Kbuild | 2 | ||||
-rw-r--r-- | arch/hexagon/include/uapi/asm/unistd.h | 16 | ||||
-rw-r--r-- | arch/hexagon/kernel/Makefile.syscalls | 3 | ||||
-rw-r--r-- | arch/hexagon/kernel/syscalltab.c | 8 |
6 files changed, 26 insertions, 15 deletions
diff --git a/arch/hexagon/include/asm/Kbuild b/arch/hexagon/include/asm/Kbuild index 3ece3c93fe08..8c1a78c8f527 100644 --- a/arch/hexagon/include/asm/Kbuild +++ b/arch/hexagon/include/asm/Kbuild @@ -1,4 +1,6 @@ # SPDX-License-Identifier: GPL-2.0 +syscall-y += syscall_table_32.h + generic-y += extable.h generic-y += iomap.h generic-y += kvm_para.h diff --git a/arch/hexagon/include/asm/unistd.h b/arch/hexagon/include/asm/unistd.h new file mode 100644 index 000000000000..1f462bade75c --- /dev/null +++ b/arch/hexagon/include/asm/unistd.h @@ -0,0 +1,10 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ + +#define __ARCH_WANT_STAT64 +#define __ARCH_WANT_SYS_CLONE +#define __ARCH_WANT_SYS_VFORK +#define __ARCH_WANT_SYS_FORK + +#define __ARCH_BROKEN_SYS_CLONE3 + +#include <uapi/asm/unistd.h> diff --git a/arch/hexagon/include/uapi/asm/Kbuild b/arch/hexagon/include/uapi/asm/Kbuild index e78470141932..2501e82a1a0a 100644 --- a/arch/hexagon/include/uapi/asm/Kbuild +++ b/arch/hexagon/include/uapi/asm/Kbuild @@ -1,2 +1,4 @@ # SPDX-License-Identifier: GPL-2.0 +syscall-y += unistd_32.h + generic-y += ucontext.h diff --git a/arch/hexagon/include/uapi/asm/unistd.h b/arch/hexagon/include/uapi/asm/unistd.h index 4bea7428e747..a3b0cac25580 100644 --- a/arch/hexagon/include/uapi/asm/unistd.h +++ b/arch/hexagon/include/uapi/asm/unistd.h @@ -27,17 +27,7 @@ * See also: syscalltab.c */ -#define sys_mmap2 sys_mmap_pgoff -#define __ARCH_WANT_RENAMEAT -#define __ARCH_WANT_STAT64 -#define __ARCH_WANT_SET_GET_RLIMIT -#define __ARCH_WANT_SYS_EXECVE -#define __ARCH_WANT_SYS_CLONE -#define __ARCH_WANT_SYS_VFORK -#define __ARCH_WANT_SYS_FORK -#define __ARCH_WANT_TIME32_SYSCALLS -#define __ARCH_WANT_SYNC_FILE_RANGE2 +#include <asm/unistd_32.h> -#define __ARCH_BROKEN_SYS_CLONE3 - -#include <asm-generic/unistd.h> +#define __NR_sync_file_range2 84 +#undef __NR_sync_file_range diff --git a/arch/hexagon/kernel/Makefile.syscalls b/arch/hexagon/kernel/Makefile.syscalls new file mode 100644 index 000000000000..d2b7c5d44d95 --- /dev/null +++ b/arch/hexagon/kernel/Makefile.syscalls @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: GPL-2.0 + +syscall_abis_32 += hexagon time32 stat64 rlimit renameat diff --git a/arch/hexagon/kernel/syscalltab.c b/arch/hexagon/kernel/syscalltab.c index 5d98bdc494ec..b53e2eead4ac 100644 --- a/arch/hexagon/kernel/syscalltab.c +++ b/arch/hexagon/kernel/syscalltab.c @@ -11,8 +11,10 @@ #include <asm/syscall.h> -#undef __SYSCALL #define __SYSCALL(nr, call) [nr] = (call), +#define __SYSCALL_WITH_COMPAT(nr, native, compat) __SYSCALL(nr, native) + +#define sys_mmap2 sys_mmap_pgoff SYSCALL_DEFINE6(hexagon_fadvise64_64, int, fd, int, advice, SC_ARG64(offset), SC_ARG64(len)) @@ -21,6 +23,8 @@ SYSCALL_DEFINE6(hexagon_fadvise64_64, int, fd, int, advice, } #define sys_fadvise64_64 sys_hexagon_fadvise64_64 +#define sys_sync_file_range sys_sync_file_range2 + void *sys_call_table[__NR_syscalls] = { -#include <asm/unistd.h> +#include <asm/syscall_table_32.h> }; |