diff mbox series

[12/17] csky: convert to generic syscall table

Message ID 20240704143611.2979589-13-arnd@kernel.org (mailing list archive)
State Handled Elsewhere
Headers show
Series arch: convert everything to syscall.tbl | expand

Checks

Context Check Description
conchuod/vmtest-fixes-PR success PR summary
conchuod/patch-12-test-1 success .github/scripts/patches/tests/build_rv32_defconfig.sh
conchuod/patch-12-test-2 success .github/scripts/patches/tests/build_rv64_clang_allmodconfig.sh
conchuod/patch-12-test-3 success .github/scripts/patches/tests/build_rv64_gcc_allmodconfig.sh
conchuod/patch-12-test-4 success .github/scripts/patches/tests/build_rv64_nommu_k210_defconfig.sh
conchuod/patch-12-test-5 success .github/scripts/patches/tests/build_rv64_nommu_virt_defconfig.sh
conchuod/patch-12-test-6 warning .github/scripts/patches/tests/checkpatch.sh
conchuod/patch-12-test-7 success .github/scripts/patches/tests/dtb_warn_rv64.sh
conchuod/patch-12-test-8 success .github/scripts/patches/tests/header_inline.sh
conchuod/patch-12-test-9 success .github/scripts/patches/tests/kdoc.sh
conchuod/patch-12-test-10 success .github/scripts/patches/tests/module_param.sh
conchuod/patch-12-test-11 success .github/scripts/patches/tests/verify_fixes.sh
conchuod/patch-12-test-12 success .github/scripts/patches/tests/verify_signedoff.sh

Commit Message

Arnd Bergmann July 4, 2024, 2:36 p.m. UTC
From: Arnd Bergmann <arnd@arndb.de>

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.

csky has two architecture specific system calls, which I add to
the generic table.  The time32, stat64 and rlimit entries in the
syscall_abis_32 line are for system calls that were part of the generic
ABI when arch/csky got added but are no longer enabled by default for
new architectures.

Both the user visible side of asm/unistd.h and the internal syscall
table in the kernel should have the same effective contents after this.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/csky/include/asm/Kbuild        |  2 ++
 arch/csky/include/asm/unistd.h      |  3 +++
 arch/csky/include/uapi/asm/Kbuild   |  2 ++
 arch/csky/include/uapi/asm/unistd.h | 14 ++------------
 arch/csky/kernel/Makefile.syscalls  |  4 ++++
 arch/csky/kernel/syscall_table.c    |  4 +++-
 scripts/syscall.tbl                 |  4 ++++
 7 files changed, 20 insertions(+), 13 deletions(-)
 create mode 100644 arch/csky/kernel/Makefile.syscalls

Comments

Arnd Bergmann July 10, 2024, 10:27 a.m. UTC | #1
On Thu, Jul 4, 2024, at 16:36, Arnd Bergmann wrote:
> -
> -#define __NR_set_thread_area	(__NR_arch_specific_syscall + 0)
> -__SYSCALL(__NR_set_thread_area, sys_set_thread_area)
> -#define __NR_cacheflush		(__NR_arch_specific_syscall + 1)
> -__SYSCALL(__NR_cacheflush, sys_cacheflush)
> +#include <asm/unistd_32.h>
> +#define __NR_sync_file_range2 __NR_sync_file_range

A small update: I have folded this fixup into this patch
and the hexagon one, to ensure we don't define both
__NR_sync_file_range2 and __NR_sync_file_range. I already
have patches to clean this up further to avoid both the
#undef and #define, but that is part of a larger rework
that is not ready before the merge window.

     Arnd

diff --git a/arch/csky/include/uapi/asm/unistd.h b/arch/csky/include/uapi/asm/unistd.h
index 794adbc04e48..44882179a6e1 100644
--- a/arch/csky/include/uapi/asm/unistd.h
+++ b/arch/csky/include/uapi/asm/unistd.h
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
 
 #include <asm/unistd_32.h>
-#define __NR_sync_file_range2 __NR_sync_file_range
+
+#define __NR_sync_file_range2 84
+#undef __NR_sync_file_range
diff --git a/arch/hexagon/include/uapi/asm/unistd.h b/arch/hexagon/include/uapi/asm/unistd.h
index 6f670347dd61..a3b0cac25580 100644
--- a/arch/hexagon/include/uapi/asm/unistd.h
+++ b/arch/hexagon/include/uapi/asm/unistd.h
@@ -29,4 +29,5 @@
 
 #include <asm/unistd_32.h>
 
-#define __NR_sync_file_range2 __NR_sync_file_range
+#define __NR_sync_file_range2 84
+#undef __NR_sync_file_range
Guo Ren July 14, 2024, 5:22 p.m. UTC | #2
On Wed, Jul 10, 2024 at 6:27 PM Arnd Bergmann <arnd@arndb.de> wrote:
>
> On Thu, Jul 4, 2024, at 16:36, Arnd Bergmann wrote:
> > -
> > -#define __NR_set_thread_area (__NR_arch_specific_syscall + 0)
> > -__SYSCALL(__NR_set_thread_area, sys_set_thread_area)
> > -#define __NR_cacheflush              (__NR_arch_specific_syscall + 1)
> > -__SYSCALL(__NR_cacheflush, sys_cacheflush)
> > +#include <asm/unistd_32.h>
> > +#define __NR_sync_file_range2 __NR_sync_file_range
>
> A small update: I have folded this fixup into this patch
> and the hexagon one, to ensure we don't define both
> __NR_sync_file_range2 and __NR_sync_file_range. I already
> have patches to clean this up further to avoid both the
> #undef and #define, but that is part of a larger rework
> that is not ready before the merge window.
>
>      Arnd
>
> diff --git a/arch/csky/include/uapi/asm/unistd.h b/arch/csky/include/uapi/asm/unistd.h
> index 794adbc04e48..44882179a6e1 100644
> --- a/arch/csky/include/uapi/asm/unistd.h
> +++ b/arch/csky/include/uapi/asm/unistd.h
> @@ -1,4 +1,6 @@
>  /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
>
>  #include <asm/unistd_32.h>
> -#define __NR_sync_file_range2 __NR_sync_file_range
> +
> +#define __NR_sync_file_range2 84
> +#undef __NR_sync_file_range
For csky part:

Acked-by: Guo Ren <guoren@kernel.org>

> diff --git a/arch/hexagon/include/uapi/asm/unistd.h b/arch/hexagon/include/uapi/asm/unistd.h
> index 6f670347dd61..a3b0cac25580 100644
> --- a/arch/hexagon/include/uapi/asm/unistd.h
> +++ b/arch/hexagon/include/uapi/asm/unistd.h
> @@ -29,4 +29,5 @@
>
>  #include <asm/unistd_32.h>
>
> -#define __NR_sync_file_range2 __NR_sync_file_range
> +#define __NR_sync_file_range2 84
> +#undef __NR_sync_file_range
diff mbox series

Patch

diff --git a/arch/csky/include/asm/Kbuild b/arch/csky/include/asm/Kbuild
index 13ebc5e34360..9a9bc65b57a9 100644
--- a/arch/csky/include/asm/Kbuild
+++ b/arch/csky/include/asm/Kbuild
@@ -1,4 +1,6 @@ 
 # SPDX-License-Identifier: GPL-2.0
+syscall-y := syscall_table_32.h
+
 generic-y += asm-offsets.h
 generic-y += extable.h
 generic-y += kvm_para.h
diff --git a/arch/csky/include/asm/unistd.h b/arch/csky/include/asm/unistd.h
index 9cf97de9a26d..2c2c24de95d8 100644
--- a/arch/csky/include/asm/unistd.h
+++ b/arch/csky/include/asm/unistd.h
@@ -2,4 +2,7 @@ 
 
 #include <uapi/asm/unistd.h>
 
+#define __ARCH_WANT_STAT64
+#define __ARCH_WANT_SYS_CLONE
+
 #define NR_syscalls (__NR_syscalls)
diff --git a/arch/csky/include/uapi/asm/Kbuild b/arch/csky/include/uapi/asm/Kbuild
index e78470141932..2501e82a1a0a 100644
--- a/arch/csky/include/uapi/asm/Kbuild
+++ b/arch/csky/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/csky/include/uapi/asm/unistd.h b/arch/csky/include/uapi/asm/unistd.h
index d529d0432876..794adbc04e48 100644
--- a/arch/csky/include/uapi/asm/unistd.h
+++ b/arch/csky/include/uapi/asm/unistd.h
@@ -1,14 +1,4 @@ 
 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
 
-#define __ARCH_WANT_STAT64
-#define __ARCH_WANT_NEW_STAT
-#define __ARCH_WANT_SYS_CLONE
-#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)
-__SYSCALL(__NR_set_thread_area, sys_set_thread_area)
-#define __NR_cacheflush		(__NR_arch_specific_syscall + 1)
-__SYSCALL(__NR_cacheflush, sys_cacheflush)
+#include <asm/unistd_32.h>
+#define __NR_sync_file_range2 __NR_sync_file_range
diff --git a/arch/csky/kernel/Makefile.syscalls b/arch/csky/kernel/Makefile.syscalls
new file mode 100644
index 000000000000..3df3b5822fce
--- /dev/null
+++ b/arch/csky/kernel/Makefile.syscalls
@@ -0,0 +1,4 @@ 
+# SPDX-License-Identifier: GPL-2.0
+
+syscall_abis_32 += csky time32 stat64 rlimit
+
diff --git a/arch/csky/kernel/syscall_table.c b/arch/csky/kernel/syscall_table.c
index a0c238c5377a..a6eb91a0e2f6 100644
--- a/arch/csky/kernel/syscall_table.c
+++ b/arch/csky/kernel/syscall_table.c
@@ -6,9 +6,11 @@ 
 
 #undef __SYSCALL
 #define __SYSCALL(nr, call)[nr] = (call),
+#define __SYSCALL_WITH_COMPAT(nr, native, compat) __SYSCALL(nr, native)
 
 #define sys_fadvise64_64 sys_csky_fadvise64_64
+#define sys_sync_file_range sys_sync_file_range2
 void * const sys_call_table[__NR_syscalls] __page_aligned_data = {
 	[0 ... __NR_syscalls - 1] = sys_ni_syscall,
-#include <asm/unistd.h>
+#include <asm/syscall_table_32.h>
 };
diff --git a/scripts/syscall.tbl b/scripts/syscall.tbl
index 13f4c79ba5c2..ed0ecba8fea4 100644
--- a/scripts/syscall.tbl
+++ b/scripts/syscall.tbl
@@ -293,6 +293,10 @@ 
 246	arc	arc_gettls			sys_arc_gettls
 247	arc	sysfs				sys_sysfs
 248	arc	arc_usr_cmpxchg			sys_arc_usr_cmpxchg
+
+244	csky	set_thread_area			sys_set_thread_area
+245	csky	cacheflush			sys_cacheflush
+
 260	time32	wait4				sys_wait4			compat_sys_wait4
 260	64	wait4				sys_wait4
 261	common	prlimit64			sys_prlimit64