public inbox for linux-s390@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 01/29] ia64: add __NR_umount2 definition
       [not found] <20190118161835.2259170-1-arnd@arndb.de>
@ 2019-01-18 16:18 ` Arnd Bergmann
  2019-01-18 16:18 ` [PATCH v2 02/29] ia64: add statx and io_pgetevents syscalls Arnd Bergmann
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Arnd Bergmann @ 2019-01-18 16:18 UTC (permalink / raw)
  To: y2038, linux-api, linux-kernel, linux-arch
  Cc: dalias, linux-ia64, linux-sh, catalin.marinas, will.deacon,
	jcmvbkbc, deepa.kernel, hpa, sparclinux, linux-s390, mpe, deller,
	x86, linux, mingo, geert, benh, firoz.khan, mattst88, fenghua.yu,
	Arnd Bergmann, heiko.carstens, linux-fsdevel, linux-m68k, luto,
	tglx, linux-arm-kernel, monstr, tony.luck, linux-parisc, netdev,
	linux-mips, paul.burton, ebiederm, linux-alpha, schwidefsky, akpm

Other architectures commonly use __NR_umount2 for sys_umount,
only ia64 and alpha use __NR_umount here. In order to synchronize
the generated tables, use umount2 like everyone else, and add back
the old name from asm/unistd.h for compatibility.

The __IGNORE_* lines are now all obsolete and can be removed as
a side-effect.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/ia64/include/asm/unistd.h        | 14 --------------
 arch/ia64/include/uapi/asm/unistd.h   |  2 ++
 arch/ia64/kernel/syscalls/syscall.tbl |  2 +-
 3 files changed, 3 insertions(+), 15 deletions(-)

diff --git a/arch/ia64/include/asm/unistd.h b/arch/ia64/include/asm/unistd.h
index 0b08ebd2dfde..9ba6110b10b9 100644
--- a/arch/ia64/include/asm/unistd.h
+++ b/arch/ia64/include/asm/unistd.h
@@ -12,20 +12,6 @@
 
 #define NR_syscalls		__NR_syscalls /* length of syscall table */
 
-/*
- * The following defines stop scripts/checksyscalls.sh from complaining about
- * unimplemented system calls.  Glibc provides for each of these by using
- * more modern equivalent system calls.
- */
-#define __IGNORE_fork		/* clone() */
-#define __IGNORE_time		/* gettimeofday() */
-#define __IGNORE_alarm		/* setitimer(ITIMER_REAL, ... */
-#define __IGNORE_pause		/* rt_sigprocmask(), rt_sigsuspend() */
-#define __IGNORE_utime		/* utimes() */
-#define __IGNORE_getpgrp	/* getpgid() */
-#define __IGNORE_vfork		/* clone() */
-#define __IGNORE_umount2	/* umount() */
-
 #define __ARCH_WANT_NEW_STAT
 #define __ARCH_WANT_SYS_UTIME
 
diff --git a/arch/ia64/include/uapi/asm/unistd.h b/arch/ia64/include/uapi/asm/unistd.h
index b2513922dcb5..013e0bcacc39 100644
--- a/arch/ia64/include/uapi/asm/unistd.h
+++ b/arch/ia64/include/uapi/asm/unistd.h
@@ -15,6 +15,8 @@
 
 #define __NR_Linux      1024
 
+#define __NR_umount __NR_umount2
+
 #include <asm/unistd_64.h>
 
 #endif /* _UAPI_ASM_IA64_UNISTD_H */
diff --git a/arch/ia64/kernel/syscalls/syscall.tbl b/arch/ia64/kernel/syscalls/syscall.tbl
index b22203b40bfe..e97caf51be42 100644
--- a/arch/ia64/kernel/syscalls/syscall.tbl
+++ b/arch/ia64/kernel/syscalls/syscall.tbl
@@ -29,7 +29,7 @@
 17	common	getpid				sys_getpid
 18	common	getppid				sys_getppid
 19	common	mount				sys_mount
-20	common	umount				sys_umount
+20	common	umount2				sys_umount
 21	common	setuid				sys_setuid
 22	common	getuid				sys_getuid
 23	common	geteuid				sys_geteuid
-- 
2.20.0

_______________________________________________
Y2038 mailing list
Y2038@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/y2038

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v2 02/29] ia64: add statx and io_pgetevents syscalls
       [not found] <20190118161835.2259170-1-arnd@arndb.de>
  2019-01-18 16:18 ` [PATCH v2 01/29] ia64: add __NR_umount2 definition Arnd Bergmann
@ 2019-01-18 16:18 ` Arnd Bergmann
  2019-01-18 16:18 ` [PATCH v2 03/29] ia64: assign syscall numbers for perf and seccomp Arnd Bergmann
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Arnd Bergmann @ 2019-01-18 16:18 UTC (permalink / raw)
  To: y2038, linux-api, linux-kernel, linux-arch
  Cc: dalias, linux-ia64, linux-sh, catalin.marinas, will.deacon,
	jcmvbkbc, deepa.kernel, hpa, sparclinux, linux-s390, mpe, deller,
	x86, linux, mingo, geert, benh, firoz.khan, mattst88, fenghua.yu,
	Arnd Bergmann, heiko.carstens, linux-fsdevel, linux-m68k, luto,
	tglx, linux-arm-kernel, monstr, tony.luck, linux-parisc, netdev,
	linux-mips, paul.burton, ebiederm, linux-alpha, schwidefsky, akpm

All architectures should implement these two, so assign numbers
and hook them up on ia64.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/ia64/kernel/syscalls/syscall.tbl | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/ia64/kernel/syscalls/syscall.tbl b/arch/ia64/kernel/syscalls/syscall.tbl
index e97caf51be42..52585281205b 100644
--- a/arch/ia64/kernel/syscalls/syscall.tbl
+++ b/arch/ia64/kernel/syscalls/syscall.tbl
@@ -335,3 +335,5 @@
 323	common	copy_file_range			sys_copy_file_range
 324	common	preadv2				sys_preadv2
 325	common	pwritev2			sys_pwritev2
+326	common	statx				sys_statx
+327	common	io_pgetevents			sys_io_pgetevents
-- 
2.20.0

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v2 03/29] ia64: assign syscall numbers for perf and seccomp
       [not found] <20190118161835.2259170-1-arnd@arndb.de>
  2019-01-18 16:18 ` [PATCH v2 01/29] ia64: add __NR_umount2 definition Arnd Bergmann
  2019-01-18 16:18 ` [PATCH v2 02/29] ia64: add statx and io_pgetevents syscalls Arnd Bergmann
@ 2019-01-18 16:18 ` Arnd Bergmann
  2019-01-18 16:18 ` [PATCH v2 04/29] alpha: wire up io_pgetevents system call Arnd Bergmann
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Arnd Bergmann @ 2019-01-18 16:18 UTC (permalink / raw)
  To: y2038, linux-api, linux-kernel, linux-arch
  Cc: dalias, linux-ia64, linux-sh, catalin.marinas, will.deacon,
	jcmvbkbc, deepa.kernel, hpa, sparclinux, linux-s390, mpe, deller,
	x86, linux, mingo, geert, benh, firoz.khan, mattst88, fenghua.yu,
	Arnd Bergmann, heiko.carstens, linux-fsdevel, linux-m68k, luto,
	tglx, linux-arm-kernel, monstr, tony.luck, linux-parisc, netdev,
	linux-mips, paul.burton, ebiederm, linux-alpha, schwidefsky, akpm

Most architectures have assigned numbers for both seccomp and
perf_event_open, even when they do not implement either.

ia64 is an exception here, so for consistency lets add numbers for both
of them. Unless CONFIG_PERF_EVENTS and CONFIG_SECCOMP are implemented,
the system calls just return -ENOSYS.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/ia64/kernel/syscalls/syscall.tbl | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/ia64/kernel/syscalls/syscall.tbl b/arch/ia64/kernel/syscalls/syscall.tbl
index 52585281205b..2e93dbdcdb80 100644
--- a/arch/ia64/kernel/syscalls/syscall.tbl
+++ b/arch/ia64/kernel/syscalls/syscall.tbl
@@ -337,3 +337,5 @@
 325	common	pwritev2			sys_pwritev2
 326	common	statx				sys_statx
 327	common	io_pgetevents			sys_io_pgetevents
+328	common	perf_event_open			sys_perf_event_open
+329	common	seccomp				sys_seccomp
-- 
2.20.0

_______________________________________________
Y2038 mailing list
Y2038@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/y2038

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v2 04/29] alpha: wire up io_pgetevents system call
       [not found] <20190118161835.2259170-1-arnd@arndb.de>
                   ` (2 preceding siblings ...)
  2019-01-18 16:18 ` [PATCH v2 03/29] ia64: assign syscall numbers for perf and seccomp Arnd Bergmann
@ 2019-01-18 16:18 ` Arnd Bergmann
  2019-01-18 16:18 ` [PATCH v2 06/29] ARM: add migrate_pages() " Arnd Bergmann
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Arnd Bergmann @ 2019-01-18 16:18 UTC (permalink / raw)
  To: y2038, linux-api, linux-kernel, linux-arch
  Cc: dalias, linux-ia64, linux-sh, catalin.marinas, will.deacon,
	jcmvbkbc, deepa.kernel, hpa, sparclinux, linux-s390, mpe, deller,
	x86, linux, mingo, geert, benh, firoz.khan, mattst88, fenghua.yu,
	Arnd Bergmann, heiko.carstens, linux-fsdevel, linux-m68k, luto,
	tglx, linux-arm-kernel, monstr, tony.luck, linux-parisc, netdev,
	linux-mips, stable, paul.burton, ebiederm, linux-alpha,
	schwidefsky, akpm

The io_pgetevents system call was added in linux-4.18 but has
no entry for alpha:

warning: #warning syscall io_pgetevents not implemented [-Wcpp]

Assign a the next system call number here.

Cc: stable@vger.kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/alpha/kernel/syscalls/syscall.tbl | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/alpha/kernel/syscalls/syscall.tbl b/arch/alpha/kernel/syscalls/syscall.tbl
index 7b56a53be5e3..e09558edae73 100644
--- a/arch/alpha/kernel/syscalls/syscall.tbl
+++ b/arch/alpha/kernel/syscalls/syscall.tbl
@@ -451,3 +451,4 @@
 520	common	preadv2				sys_preadv2
 521	common	pwritev2			sys_pwritev2
 522	common	statx				sys_statx
+523	common	io_pgetevents			sys_io_pgetevents
-- 
2.20.0

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v2 06/29] ARM: add migrate_pages() system call
       [not found] <20190118161835.2259170-1-arnd@arndb.de>
                   ` (3 preceding siblings ...)
  2019-01-18 16:18 ` [PATCH v2 04/29] alpha: wire up io_pgetevents system call Arnd Bergmann
@ 2019-01-18 16:18 ` Arnd Bergmann
  2019-01-18 16:18 ` [PATCH v2 07/29] ARM: add kexec_file_load system call number Arnd Bergmann
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Arnd Bergmann @ 2019-01-18 16:18 UTC (permalink / raw)
  To: y2038, linux-api, linux-kernel, linux-arch
  Cc: dalias, linux-ia64, linux-sh, catalin.marinas, will.deacon,
	jcmvbkbc, deepa.kernel, hpa, sparclinux, linux-s390, mpe, deller,
	x86, linux, mingo, geert, benh, firoz.khan, mattst88, fenghua.yu,
	Arnd Bergmann, heiko.carstens, linux-fsdevel, linux-m68k, luto,
	tglx, linux-arm-kernel, monstr, tony.luck, linux-parisc, netdev,
	linux-mips, paul.burton, ebiederm, linux-alpha, schwidefsky, akpm

The migrate_pages system call has an assigned number on all architectures
except ARM. When it got added initially in commit d80ade7b3231 ("ARM:
Fix warning: #warning syscall migrate_pages not implemented"), it was
intentionally left out based on the observation that there are no 32-bit
ARM NUMA systems.

However, there are now arm64 NUMA machines that can in theory run 32-bit
kernels (actually enabling NUMA there would require additional work)
as well as 32-bit user space on 64-bit kernels, so that argument is no
longer very strong.

Assigning the number lets us use the system call on 64-bit kernels as well
as providing a more consistent set of syscalls across architectures.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/arm/include/asm/unistd.h     | 1 -
 arch/arm/tools/syscall.tbl        | 1 +
 arch/arm64/include/asm/unistd.h   | 2 +-
 arch/arm64/include/asm/unistd32.h | 2 ++
 4 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/arm/include/asm/unistd.h b/arch/arm/include/asm/unistd.h
index 88ef2ce1f69a..d713587dfcf4 100644
--- a/arch/arm/include/asm/unistd.h
+++ b/arch/arm/include/asm/unistd.h
@@ -45,7 +45,6 @@
  * Unimplemented (or alternatively implemented) syscalls
  */
 #define __IGNORE_fadvise64_64
-#define __IGNORE_migrate_pages
 
 #ifdef __ARM_EABI__
 /*
diff --git a/arch/arm/tools/syscall.tbl b/arch/arm/tools/syscall.tbl
index 8edf93b4490f..86de9eb34296 100644
--- a/arch/arm/tools/syscall.tbl
+++ b/arch/arm/tools/syscall.tbl
@@ -414,3 +414,4 @@
 397	common	statx			sys_statx
 398	common	rseq			sys_rseq
 399	common	io_pgetevents		sys_io_pgetevents
+400	common	migrate_pages		sys_migrate_pages
diff --git a/arch/arm64/include/asm/unistd.h b/arch/arm64/include/asm/unistd.h
index a7b1fc58ffdf..261216c3336e 100644
--- a/arch/arm64/include/asm/unistd.h
+++ b/arch/arm64/include/asm/unistd.h
@@ -44,7 +44,7 @@
 #define __ARM_NR_compat_set_tls		(__ARM_NR_COMPAT_BASE + 5)
 #define __ARM_NR_COMPAT_END		(__ARM_NR_COMPAT_BASE + 0x800)
 
-#define __NR_compat_syscalls		400
+#define __NR_compat_syscalls		401
 #endif
 
 #define __ARCH_WANT_SYS_CLONE
diff --git a/arch/arm64/include/asm/unistd32.h b/arch/arm64/include/asm/unistd32.h
index 04ee190b90fe..f15bcbacb8f6 100644
--- a/arch/arm64/include/asm/unistd32.h
+++ b/arch/arm64/include/asm/unistd32.h
@@ -821,6 +821,8 @@ __SYSCALL(__NR_statx, sys_statx)
 __SYSCALL(__NR_rseq, sys_rseq)
 #define __NR_io_pgetevents 399
 __SYSCALL(__NR_io_pgetevents, compat_sys_io_pgetevents)
+#define __NR_migrate_pages 400
+__SYSCALL(__NR_migrate_pages, compat_sys_migrate_pages)
 
 /*
  * Please add new compat syscalls above this comment and update
-- 
2.20.0

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v2 07/29] ARM: add kexec_file_load system call number
       [not found] <20190118161835.2259170-1-arnd@arndb.de>
                   ` (4 preceding siblings ...)
  2019-01-18 16:18 ` [PATCH v2 06/29] ARM: add migrate_pages() " Arnd Bergmann
@ 2019-01-18 16:18 ` Arnd Bergmann
  2019-01-18 16:18 ` [PATCH v2 10/29] sh: add statx system call Arnd Bergmann
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Arnd Bergmann @ 2019-01-18 16:18 UTC (permalink / raw)
  To: y2038, linux-api, linux-kernel, linux-arch
  Cc: dalias, linux-ia64, linux-sh, catalin.marinas, will.deacon,
	jcmvbkbc, deepa.kernel, hpa, sparclinux, linux-s390, mpe, deller,
	x86, linux, mingo, geert, benh, firoz.khan, mattst88, fenghua.yu,
	Arnd Bergmann, heiko.carstens, linux-fsdevel, linux-m68k, luto,
	tglx, linux-arm-kernel, monstr, tony.luck, linux-parisc, netdev,
	linux-mips, paul.burton, ebiederm, linux-alpha, schwidefsky, akpm

A couple of architectures including arm64 already implement the
kexec_file_load system call, on many others we have assigned a system
call number for it, but not implemented it yet.

Adding the number in arch/arm/ lets us use the system call on arm64
systems in compat mode, and also reduces the number of differences
between architectures. If we want to implement kexec_file_load on ARM
in the future, the number assignment means that kexec tools can already
be built with the now current set of kernel headers.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/arm/tools/syscall.tbl        | 1 +
 arch/arm64/include/asm/unistd.h   | 2 +-
 arch/arm64/include/asm/unistd32.h | 2 ++
 3 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/arch/arm/tools/syscall.tbl b/arch/arm/tools/syscall.tbl
index 86de9eb34296..20ed7e026723 100644
--- a/arch/arm/tools/syscall.tbl
+++ b/arch/arm/tools/syscall.tbl
@@ -415,3 +415,4 @@
 398	common	rseq			sys_rseq
 399	common	io_pgetevents		sys_io_pgetevents
 400	common	migrate_pages		sys_migrate_pages
+401	common	kexec_file_load		sys_kexec_file_load
diff --git a/arch/arm64/include/asm/unistd.h b/arch/arm64/include/asm/unistd.h
index 261216c3336e..2c30e6f145ff 100644
--- a/arch/arm64/include/asm/unistd.h
+++ b/arch/arm64/include/asm/unistd.h
@@ -44,7 +44,7 @@
 #define __ARM_NR_compat_set_tls		(__ARM_NR_COMPAT_BASE + 5)
 #define __ARM_NR_COMPAT_END		(__ARM_NR_COMPAT_BASE + 0x800)
 
-#define __NR_compat_syscalls		401
+#define __NR_compat_syscalls		402
 #endif
 
 #define __ARCH_WANT_SYS_CLONE
diff --git a/arch/arm64/include/asm/unistd32.h b/arch/arm64/include/asm/unistd32.h
index f15bcbacb8f6..8ca1d4c304f4 100644
--- a/arch/arm64/include/asm/unistd32.h
+++ b/arch/arm64/include/asm/unistd32.h
@@ -823,6 +823,8 @@ __SYSCALL(__NR_rseq, sys_rseq)
 __SYSCALL(__NR_io_pgetevents, compat_sys_io_pgetevents)
 #define __NR_migrate_pages 400
 __SYSCALL(__NR_migrate_pages, compat_sys_migrate_pages)
+#define __NR_kexec_file_load 401
+__SYSCALL(__NR_kexec_file_load, sys_kexec_file_load)
 
 /*
  * Please add new compat syscalls above this comment and update
-- 
2.20.0

_______________________________________________
Y2038 mailing list
Y2038@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/y2038

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v2 10/29] sh: add statx system call
       [not found] <20190118161835.2259170-1-arnd@arndb.de>
                   ` (5 preceding siblings ...)
  2019-01-18 16:18 ` [PATCH v2 07/29] ARM: add kexec_file_load system call number Arnd Bergmann
@ 2019-01-18 16:18 ` Arnd Bergmann
  2019-01-18 16:18 ` [PATCH v2 13/29] arch: add split IPC system calls where needed Arnd Bergmann
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Arnd Bergmann @ 2019-01-18 16:18 UTC (permalink / raw)
  To: y2038, linux-api, linux-kernel, linux-arch
  Cc: dalias, linux-ia64, linux-sh, catalin.marinas, will.deacon,
	jcmvbkbc, deepa.kernel, hpa, sparclinux, linux-s390, mpe, deller,
	x86, linux, mingo, geert, benh, firoz.khan, mattst88, fenghua.yu,
	Arnd Bergmann, heiko.carstens, linux-fsdevel, linux-m68k, luto,
	tglx, linux-arm-kernel, monstr, tony.luck, linux-parisc, netdev,
	linux-mips, paul.burton, ebiederm, linux-alpha, schwidefsky, akpm

statx is available on almost all other architectures but
got missed on sh, so add it now.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/sh/kernel/syscalls/syscall.tbl | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/sh/kernel/syscalls/syscall.tbl b/arch/sh/kernel/syscalls/syscall.tbl
index 21ec75288562..a70db013dbc7 100644
--- a/arch/sh/kernel/syscalls/syscall.tbl
+++ b/arch/sh/kernel/syscalls/syscall.tbl
@@ -390,3 +390,4 @@
 380	common	copy_file_range			sys_copy_file_range
 381	common	preadv2				sys_preadv2
 382	common	pwritev2			sys_pwritev2
+383	common	statx				sys_statx
-- 
2.20.0

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v2 13/29] arch: add split IPC system calls where needed
       [not found] <20190118161835.2259170-1-arnd@arndb.de>
                   ` (6 preceding siblings ...)
  2019-01-18 16:18 ` [PATCH v2 10/29] sh: add statx system call Arnd Bergmann
@ 2019-01-18 16:18 ` Arnd Bergmann
  2019-01-18 17:18   ` Gabriel Paubert
  2019-01-18 16:18 ` [PATCH v2 14/29] arch: add pkey and rseq syscall numbers everywhere Arnd Bergmann
                   ` (3 subsequent siblings)
  11 siblings, 1 reply; 17+ messages in thread
From: Arnd Bergmann @ 2019-01-18 16:18 UTC (permalink / raw)
  To: y2038, linux-api, linux-kernel, linux-arch
  Cc: dalias, linux-ia64, linux-sh, catalin.marinas, will.deacon,
	jcmvbkbc, deepa.kernel, hpa, sparclinux, linux-s390, mpe, deller,
	x86, linux, mingo, geert, benh, firoz.khan, mattst88, fenghua.yu,
	Arnd Bergmann, heiko.carstens, linux-fsdevel, linux-m68k, luto,
	tglx, linux-arm-kernel, monstr, tony.luck, linux-parisc, netdev,
	linux-mips, paul.burton, ebiederm, linux-alpha, schwidefsky, akpm

The IPC system call handling is highly inconsistent across architectures,
some use sys_ipc, some use separate calls, and some use both.  We also
have some architectures that require passing IPC_64 in the flags, and
others that set it implicitly.

For the additon of a y2083 safe semtimedop() system call, I chose to only
support the separate entry points, but that requires first supporting
the regular ones with their own syscall numbers.

The IPC_64 is now implied by the new semctl/shmctl/msgctl system
calls even on the architectures that require passing it with the ipc()
multiplexer.

I'm not adding the new semtimedop() or semop() on 32-bit architectures,
those will get implemented using the new semtimedop_time64() version
that gets added along with the other time64 calls.
Three 64-bit architectures (powerpc, s390 and sparc) get semtimedop().

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
One aspect here that might be a bit controversial is the use of
the same system call numbers across all architectures, synchronizing
all of them with the x86-32 numbers. With the new syscall.tbl
files, I hope we can just keep doing that in the future, and no
longer require the architecture maintainers to assign a number.

This is mainly useful for implementers of the C libraries: if
we can add future system calls everywhere at the same time, using
a particular version of the kernel headers also guarantees that
the system call number macro is visible.
---
 arch/m68k/kernel/syscalls/syscall.tbl     | 11 +++++++++++
 arch/mips/kernel/syscalls/syscall_o32.tbl | 11 +++++++++++
 arch/powerpc/kernel/syscalls/syscall.tbl  | 13 +++++++++++++
 arch/s390/kernel/syscalls/syscall.tbl     | 12 ++++++++++++
 arch/sh/kernel/syscalls/syscall.tbl       | 11 +++++++++++
 arch/sparc/kernel/syscalls/syscall.tbl    | 12 ++++++++++++
 arch/x86/entry/syscalls/syscall_32.tbl    | 11 +++++++++++
 7 files changed, 81 insertions(+)

diff --git a/arch/m68k/kernel/syscalls/syscall.tbl b/arch/m68k/kernel/syscalls/syscall.tbl
index 85779d6ef935..5354ba02eed2 100644
--- a/arch/m68k/kernel/syscalls/syscall.tbl
+++ b/arch/m68k/kernel/syscalls/syscall.tbl
@@ -388,3 +388,14 @@
 378	common	pwritev2			sys_pwritev2
 379	common	statx				sys_statx
 380	common	seccomp				sys_seccomp
+# room for arch specific calls
+393	common	semget				sys_semget
+394	common	semctl				sys_semctl
+395	common	shmget				sys_shmget
+396	common	shmctl				sys_shmctl
+397	common	shmat				sys_shmat
+398	common	shmdt				sys_shmdt
+399	common	msgget				sys_msgget
+400	common	msgsnd				sys_msgsnd
+401	common	msgrcv				sys_msgrcv
+402	common	msgctl				sys_msgctl
diff --git a/arch/mips/kernel/syscalls/syscall_o32.tbl b/arch/mips/kernel/syscalls/syscall_o32.tbl
index 3d5a47b80d2b..fa47ea8cc6ef 100644
--- a/arch/mips/kernel/syscalls/syscall_o32.tbl
+++ b/arch/mips/kernel/syscalls/syscall_o32.tbl
@@ -380,3 +380,14 @@
 366	o32	statx				sys_statx
 367	o32	rseq				sys_rseq
 368	o32	io_pgetevents			sys_io_pgetevents		compat_sys_io_pgetevents
+# room for arch specific calls
+393	o32	semget				sys_semget
+394	o32	semctl				sys_semctl			compat_sys_semctl
+395	o32	shmget				sys_shmget
+396	o32	shmctl				sys_shmctl			compat_sys_shmctl
+397	o32	shmat				sys_shmat			compat_sys_shmat
+398	o32	shmdt				sys_shmdt
+399	o32	msgget				sys_msgget
+400	o32	msgsnd				sys_msgsnd			compat_sys_msgsnd
+401	o32	msgrcv				sys_msgrcv			compat_sys_msgrcv
+402	o32	msgctl				sys_msgctl			compat_sys_msgctl
diff --git a/arch/powerpc/kernel/syscalls/syscall.tbl b/arch/powerpc/kernel/syscalls/syscall.tbl
index db3bbb8744af..7555874ce39c 100644
--- a/arch/powerpc/kernel/syscalls/syscall.tbl
+++ b/arch/powerpc/kernel/syscalls/syscall.tbl
@@ -414,6 +414,7 @@
 363	spu	switch_endian			sys_ni_syscall
 364	common	userfaultfd			sys_userfaultfd
 365	common	membarrier			sys_membarrier
+# 366-377 originally left for IPC, now unused
 378	nospu	mlock2				sys_mlock2
 379	nospu	copy_file_range			sys_copy_file_range
 380	common	preadv2				sys_preadv2			compat_sys_preadv2
@@ -425,3 +426,15 @@
 386	nospu	pkey_mprotect			sys_pkey_mprotect
 387	nospu	rseq				sys_rseq
 388	nospu	io_pgetevents			sys_io_pgetevents		compat_sys_io_pgetevents
+# room for arch specific syscalls
+392	64	semtimedop			sys_semtimedop
+393	common	semget				sys_semget
+394	common	semctl				sys_semctl			compat_sys_semctl
+395	common	shmget				sys_shmget
+396	common	shmctl				sys_shmctl			compat_sys_shmctl
+397	common	shmat				sys_shmat			compat_sys_shmat
+398	common	shmdt				sys_shmdt
+399	common	msgget				sys_msgget
+400	common	msgsnd				sys_msgsnd			compat_sys_msgsnd
+401	common	msgrcv				sys_msgrcv			compat_sys_msgrcv
+402	common	msgctl				sys_msgctl			compat_sys_msgctl
diff --git a/arch/s390/kernel/syscalls/syscall.tbl b/arch/s390/kernel/syscalls/syscall.tbl
index 7413fd318e2a..0bccb01c6202 100644
--- a/arch/s390/kernel/syscalls/syscall.tbl
+++ b/arch/s390/kernel/syscalls/syscall.tbl
@@ -391,3 +391,15 @@
 381  common	kexec_file_load		sys_kexec_file_load		sys_kexec_file_load
 382  common	io_pgetevents		sys_io_pgetevents		compat_sys_io_pgetevents
 383  common	rseq			sys_rseq			sys_rseq
+# room for arch specific syscalls
+392	64	semtimedop		sys_semtimedop			-
+393  common	semget			sys_semget			sys_semget
+394  common	semctl			sys_semctl			compat_sys_semctl
+395  common	shmget			sys_shmget			sys_shmget
+396  common	shmctl			sys_shmctl			compat_sys_shmctl
+397  common	shmat			sys_shmat			compat_sys_shmat
+398  common	shmdt			sys_shmdt 			sys_shmdt
+399  common	msgget			sys_msgget			sys_msgget
+400  common	msgsnd			sys_msgsnd			compat_sys_msgsnd
+401  common	msgrcv			sys_msgrcv			compat_sys_msgrcv
+402  common	msgctl			sys_msgctl			compat_sys_msgctl
diff --git a/arch/sh/kernel/syscalls/syscall.tbl b/arch/sh/kernel/syscalls/syscall.tbl
index a70db013dbc7..6d0b84e3ef2d 100644
--- a/arch/sh/kernel/syscalls/syscall.tbl
+++ b/arch/sh/kernel/syscalls/syscall.tbl
@@ -391,3 +391,14 @@
 381	common	preadv2				sys_preadv2
 382	common	pwritev2			sys_pwritev2
 383	common	statx				sys_statx
+# room for arch specific syscalls
+393	common	semget				sys_semget
+394	common	semctl				sys_semctl
+395	common	shmget				sys_shmget
+396	common	shmctl				sys_shmctl
+397	common	shmat				sys_shmat
+398	common	shmdt				sys_shmdt
+399	common	msgget				sys_msgget
+400	common	msgsnd				sys_msgsnd
+401	common	msgrcv				sys_msgrcv
+402	common	msgctl				sys_msgctl
diff --git a/arch/sparc/kernel/syscalls/syscall.tbl b/arch/sparc/kernel/syscalls/syscall.tbl
index c8c77c05ea97..8c9580302422 100644
--- a/arch/sparc/kernel/syscalls/syscall.tbl
+++ b/arch/sparc/kernel/syscalls/syscall.tbl
@@ -407,3 +407,15 @@
 359	common	pwritev2		sys_pwritev2			compat_sys_pwritev2
 360	common	statx			sys_statx
 361	common	io_pgetevents		sys_io_pgetevents		compat_sys_io_pgetevents
+# room for arch specific syscalls
+392	64	semtimedop			sys_semtimedop
+393	common	semget			sys_semget
+394	common	semctl			sys_semctl			compat_sys_semctl
+395	common	shmget			sys_shmget
+396	common	shmctl			sys_shmctl			compat_sys_shmctl
+397	common	shmat			sys_shmat			compat_sys_shmat
+398	common	shmdt			sys_shmdt
+399	common	msgget			sys_msgget
+400	common	msgsnd			sys_msgsnd			compat_sys_msgsnd
+401	common	msgrcv			sys_msgrcv			compat_sys_msgrcv
+402	common	msgctl			sys_msgctl			compat_sys_msgctl
diff --git a/arch/x86/entry/syscalls/syscall_32.tbl b/arch/x86/entry/syscalls/syscall_32.tbl
index 3cf7b533b3d1..fef80b92eb7e 100644
--- a/arch/x86/entry/syscalls/syscall_32.tbl
+++ b/arch/x86/entry/syscalls/syscall_32.tbl
@@ -398,3 +398,14 @@
 384	i386	arch_prctl		sys_arch_prctl			__ia32_compat_sys_arch_prctl
 385	i386	io_pgetevents		sys_io_pgetevents		__ia32_compat_sys_io_pgetevents
 386	i386	rseq			sys_rseq			__ia32_sys_rseq
+# room for arch specific syscalls
+393	i386	semget			sys_semget    			__ia32_sys_semget
+394	i386	semctl			sys_semctl    			__ia32_compat_sys_semctl
+395	i386	shmget			sys_shmget    			__ia32_sys_shmget
+396	i386	shmctl			sys_shmctl    			__ia32_compat_sys_shmctl
+397	i386	shmat			sys_shmat     			__ia32_compat_sys_shmat
+398	i386	shmdt			sys_shmdt     			__ia32_sys_shmdt
+399	i386	msgget			sys_msgget    			__ia32_sys_msgget
+400	i386	msgsnd			sys_msgsnd    			__ia32_compat_sys_msgsnd
+401	i386	msgrcv			sys_msgrcv    			__ia32_compat_sys_msgrcv
+402	i386	msgctl			sys_msgctl    			__ia32_compat_sys_msgctl
-- 
2.20.0

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v2 14/29] arch: add pkey and rseq syscall numbers everywhere
       [not found] <20190118161835.2259170-1-arnd@arndb.de>
                   ` (7 preceding siblings ...)
  2019-01-18 16:18 ` [PATCH v2 13/29] arch: add split IPC system calls where needed Arnd Bergmann
@ 2019-01-18 16:18 ` Arnd Bergmann
  2019-01-18 16:57 ` [PATCH v2 00/29] y2038: add time64 syscalls Dennis Clarke
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Arnd Bergmann @ 2019-01-18 16:18 UTC (permalink / raw)
  To: y2038, linux-api, linux-kernel, linux-arch
  Cc: dalias, linux-ia64, linux-sh, catalin.marinas, will.deacon,
	jcmvbkbc, deepa.kernel, hpa, sparclinux, linux-s390, mpe, deller,
	x86, linux, mingo, geert, benh, firoz.khan, mattst88, fenghua.yu,
	Arnd Bergmann, heiko.carstens, linux-fsdevel, linux-m68k, luto,
	tglx, linux-arm-kernel, monstr, tony.luck, linux-parisc, netdev,
	linux-mips, paul.burton, ebiederm, linux-alpha, schwidefsky, akpm

Most architectures define system call numbers for the rseq and pkey system
calls, even when they don't support the features, and perhaps never will.

Only a few architectures are missing these, so just define them anyway
for consistency. If we decide to add them later to one of these, the
system call numbers won't get out of sync then.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/alpha/include/asm/unistd.h         | 4 ----
 arch/alpha/kernel/syscalls/syscall.tbl  | 4 ++++
 arch/ia64/kernel/syscalls/syscall.tbl   | 4 ++++
 arch/m68k/kernel/syscalls/syscall.tbl   | 4 ++++
 arch/parisc/include/asm/unistd.h        | 3 ---
 arch/parisc/kernel/syscalls/syscall.tbl | 4 ++++
 arch/s390/include/asm/unistd.h          | 3 ---
 arch/s390/kernel/syscalls/syscall.tbl   | 3 +++
 arch/sh/kernel/syscalls/syscall.tbl     | 4 ++++
 arch/sparc/include/asm/unistd.h         | 5 -----
 arch/sparc/kernel/syscalls/syscall.tbl  | 4 ++++
 arch/xtensa/kernel/syscalls/syscall.tbl | 1 +
 12 files changed, 28 insertions(+), 15 deletions(-)

diff --git a/arch/alpha/include/asm/unistd.h b/arch/alpha/include/asm/unistd.h
index 564ba87bdc38..31ad350b58a0 100644
--- a/arch/alpha/include/asm/unistd.h
+++ b/arch/alpha/include/asm/unistd.h
@@ -29,9 +29,5 @@
 #define __IGNORE_getppid
 #define __IGNORE_getuid
 
-/* Alpha doesn't have protection keys. */
-#define __IGNORE_pkey_mprotect
-#define __IGNORE_pkey_alloc
-#define __IGNORE_pkey_free
 
 #endif /* _ALPHA_UNISTD_H */
diff --git a/arch/alpha/kernel/syscalls/syscall.tbl b/arch/alpha/kernel/syscalls/syscall.tbl
index b0e247287908..25b4a7e76943 100644
--- a/arch/alpha/kernel/syscalls/syscall.tbl
+++ b/arch/alpha/kernel/syscalls/syscall.tbl
@@ -452,3 +452,7 @@
 521	common	pwritev2			sys_pwritev2
 522	common	statx				sys_statx
 523	common	io_pgetevents			sys_io_pgetevents
+524	common	pkey_alloc			sys_pkey_alloc
+525	common	pkey_free			sys_pkey_free
+526	common	pkey_mprotect			sys_pkey_mprotect
+527	common	rseq				sys_rseq
diff --git a/arch/ia64/kernel/syscalls/syscall.tbl b/arch/ia64/kernel/syscalls/syscall.tbl
index 2e93dbdcdb80..84e03de00177 100644
--- a/arch/ia64/kernel/syscalls/syscall.tbl
+++ b/arch/ia64/kernel/syscalls/syscall.tbl
@@ -339,3 +339,7 @@
 327	common	io_pgetevents			sys_io_pgetevents
 328	common	perf_event_open			sys_perf_event_open
 329	common	seccomp				sys_seccomp
+330	common	pkey_alloc			sys_pkey_alloc
+331	common	pkey_free			sys_pkey_free
+332	common	pkey_mprotect			sys_pkey_mprotect
+333	common	rseq				sys_rseq
diff --git a/arch/m68k/kernel/syscalls/syscall.tbl b/arch/m68k/kernel/syscalls/syscall.tbl
index 5354ba02eed2..ae88b85d068e 100644
--- a/arch/m68k/kernel/syscalls/syscall.tbl
+++ b/arch/m68k/kernel/syscalls/syscall.tbl
@@ -388,6 +388,10 @@
 378	common	pwritev2			sys_pwritev2
 379	common	statx				sys_statx
 380	common	seccomp				sys_seccomp
+381	common	pkey_alloc			sys_pkey_alloc
+382	common	pkey_free			sys_pkey_free
+383	common	pkey_mprotect			sys_pkey_mprotect
+384	common	rseq				sys_rseq
 # room for arch specific calls
 393	common	semget				sys_semget
 394	common	semctl				sys_semctl
diff --git a/arch/parisc/include/asm/unistd.h b/arch/parisc/include/asm/unistd.h
index c2c2afb28941..9ec1026af877 100644
--- a/arch/parisc/include/asm/unistd.h
+++ b/arch/parisc/include/asm/unistd.h
@@ -12,9 +12,6 @@
 
 #define __IGNORE_select			/* newselect */
 #define __IGNORE_fadvise64		/* fadvise64_64 */
-#define __IGNORE_pkey_mprotect
-#define __IGNORE_pkey_alloc
-#define __IGNORE_pkey_free
 
 #ifndef ASM_LINE_SEP
 # define ASM_LINE_SEP ;
diff --git a/arch/parisc/kernel/syscalls/syscall.tbl b/arch/parisc/kernel/syscalls/syscall.tbl
index 9bbd2f9f56c8..e07231de3597 100644
--- a/arch/parisc/kernel/syscalls/syscall.tbl
+++ b/arch/parisc/kernel/syscalls/syscall.tbl
@@ -367,3 +367,7 @@
 348	common	pwritev2		sys_pwritev2			compat_sys_pwritev2
 349	common	statx			sys_statx
 350	common	io_pgetevents		sys_io_pgetevents		compat_sys_io_pgetevents
+351	common	pkey_alloc		sys_pkey_alloc
+352	common	pkey_free		sys_pkey_free
+353	common	pkey_mprotect		sys_pkey_mprotect
+354	common	rseq			sys_rseq
diff --git a/arch/s390/include/asm/unistd.h b/arch/s390/include/asm/unistd.h
index a1fbf15d53aa..ed08f114ee91 100644
--- a/arch/s390/include/asm/unistd.h
+++ b/arch/s390/include/asm/unistd.h
@@ -11,9 +11,6 @@
 #include <asm/unistd_nr.h>
 
 #define __IGNORE_time
-#define __IGNORE_pkey_mprotect
-#define __IGNORE_pkey_alloc
-#define __IGNORE_pkey_free
 
 #define __ARCH_WANT_NEW_STAT
 #define __ARCH_WANT_OLD_READDIR
diff --git a/arch/s390/kernel/syscalls/syscall.tbl b/arch/s390/kernel/syscalls/syscall.tbl
index 0bccb01c6202..14142eb21f8f 100644
--- a/arch/s390/kernel/syscalls/syscall.tbl
+++ b/arch/s390/kernel/syscalls/syscall.tbl
@@ -391,6 +391,9 @@
 381  common	kexec_file_load		sys_kexec_file_load		sys_kexec_file_load
 382  common	io_pgetevents		sys_io_pgetevents		compat_sys_io_pgetevents
 383  common	rseq			sys_rseq			sys_rseq
+384  common	pkey_alloc		sys_pkey_alloc			sys_pkey_alloc
+385  common	pkey_free		sys_pkey_free			sys_pkey_free
+386  common	pkey_mprotect		sys_pkey_mprotect		sys_pkey_mprotect
 # room for arch specific syscalls
 392	64	semtimedop		sys_semtimedop			-
 393  common	semget			sys_semget			sys_semget
diff --git a/arch/sh/kernel/syscalls/syscall.tbl b/arch/sh/kernel/syscalls/syscall.tbl
index 6d0b84e3ef2d..3f96ad0424e1 100644
--- a/arch/sh/kernel/syscalls/syscall.tbl
+++ b/arch/sh/kernel/syscalls/syscall.tbl
@@ -391,6 +391,10 @@
 381	common	preadv2				sys_preadv2
 382	common	pwritev2			sys_pwritev2
 383	common	statx				sys_statx
+384	common	pkey_alloc			sys_pkey_alloc
+385	common	pkey_free			sys_pkey_free
+386	common	pkey_mprotect			sys_pkey_mprotect
+387	common	rseq				sys_rseq
 # room for arch specific syscalls
 393	common	semget				sys_semget
 394	common	semctl				sys_semctl
diff --git a/arch/sparc/include/asm/unistd.h b/arch/sparc/include/asm/unistd.h
index 5194d86ef72d..08696ea5dca8 100644
--- a/arch/sparc/include/asm/unistd.h
+++ b/arch/sparc/include/asm/unistd.h
@@ -59,9 +59,4 @@
 #define __IGNORE_getresgid
 #endif
 
-/* Sparc doesn't have protection keys. */
-#define __IGNORE_pkey_mprotect
-#define __IGNORE_pkey_alloc
-#define __IGNORE_pkey_free
-
 #endif /* _SPARC_UNISTD_H */
diff --git a/arch/sparc/kernel/syscalls/syscall.tbl b/arch/sparc/kernel/syscalls/syscall.tbl
index 8c9580302422..24ebef675184 100644
--- a/arch/sparc/kernel/syscalls/syscall.tbl
+++ b/arch/sparc/kernel/syscalls/syscall.tbl
@@ -407,6 +407,10 @@
 359	common	pwritev2		sys_pwritev2			compat_sys_pwritev2
 360	common	statx			sys_statx
 361	common	io_pgetevents		sys_io_pgetevents		compat_sys_io_pgetevents
+362	common	pkey_alloc		sys_pkey_alloc
+363	common	pkey_free		sys_pkey_free
+364	common	pkey_mprotect		sys_pkey_mprotect
+365	common	rseq			sys_rseq
 # room for arch specific syscalls
 392	64	semtimedop			sys_semtimedop
 393	common	semget			sys_semget
diff --git a/arch/xtensa/kernel/syscalls/syscall.tbl b/arch/xtensa/kernel/syscalls/syscall.tbl
index f8befa11b0c4..c699e014e0dd 100644
--- a/arch/xtensa/kernel/syscalls/syscall.tbl
+++ b/arch/xtensa/kernel/syscalls/syscall.tbl
@@ -372,3 +372,4 @@
 349	common	pkey_alloc			sys_pkey_alloc
 350	common	pkey_free			sys_pkey_free
 351	common	statx				sys_statx
+352	common	rseq				sys_rseq
-- 
2.20.0

_______________________________________________
Y2038 mailing list
Y2038@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/y2038

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 00/29] y2038: add time64 syscalls
       [not found] <20190118161835.2259170-1-arnd@arndb.de>
                   ` (8 preceding siblings ...)
  2019-01-18 16:18 ` [PATCH v2 14/29] arch: add pkey and rseq syscall numbers everywhere Arnd Bergmann
@ 2019-01-18 16:57 ` Dennis Clarke
       [not found]   ` <CAK8P3a3xUpbk+Wpo5kdDtZ81jQuzEZH6jdmJJNeNM+acueg+Dw@mail.gmail.com>
  2019-01-18 17:45   ` James Bottomley
       [not found] ` <20190118161835.2259170-30-arnd@arndb.de>
       [not found] ` <20190118161835.2259170-9-arnd@arndb.de>
  11 siblings, 2 replies; 17+ messages in thread
From: Dennis Clarke @ 2019-01-18 16:57 UTC (permalink / raw)
  To: Arnd Bergmann, y2038, linux-api, linux-kernel, linux-arch
  Cc: mattst88, linux, catalin.marinas, will.deacon, tony.luck,
	fenghua.yu, geert, monstr, paul.burton, deller, benh, mpe,
	schwidefsky, heiko.carstens, dalias, davem, luto, tglx, mingo,
	hpa, x86, jcmvbkbc, akpm, deepa.kernel, ebiederm, firoz.khan,
	linux-alpha, linux-arm-kernel, linux-ia64, linux-m68k, linux-mips,
	linux-parisc, linuxppc-dev, linux-s390

On 1/18/19 11:18 AM, Arnd Bergmann wrote:
> This is a minor update of the patches I posted last week, I
> would like to add this into linux-next now, but would still do
> changes if there are concerns about the contents. The first
> version did not see a lot of replies, which could mean that
> either everyone is happy with it, or that it was largely ignored.
> 
> See also the article at https://lwn.net/Articles/776435/.

I would be happy to read "Approaching the kernel year-2038 end game"
however it is behind a pay wall.  Perhaps it may be best to just
host interesting articles about open source idea elsewhere.

Dennis Clarke

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 13/29] arch: add split IPC system calls where needed
  2019-01-18 16:18 ` [PATCH v2 13/29] arch: add split IPC system calls where needed Arnd Bergmann
@ 2019-01-18 17:18   ` Gabriel Paubert
  2019-01-18 19:30     ` Arnd Bergmann
  0 siblings, 1 reply; 17+ messages in thread
From: Gabriel Paubert @ 2019-01-18 17:18 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: dalias, linux-ia64, linux-sh, catalin.marinas, will.deacon,
	linux-mips, jcmvbkbc, deepa.kernel, hpa, sparclinux, linux-arch,
	linux-s390, y2038, deller, x86, linux, mingo, geert, firoz.khan,
	mattst88, fenghua.yu, heiko.carstens, linux-alpha, schwidefsky,
	linux-m68k, luto, tglx, linux-arm-kernel, monstr, tony.luck,
	linux-parisc, linux-api, linux-kernel, paul.burton, ebiederm,
	netdev, linux-fsdevel

On Fri, Jan 18, 2019 at 05:18:19PM +0100, Arnd Bergmann wrote:
> The IPC system call handling is highly inconsistent across architectures,
> some use sys_ipc, some use separate calls, and some use both.  We also
> have some architectures that require passing IPC_64 in the flags, and
> others that set it implicitly.
> 
> For the additon of a y2083 safe semtimedop() system call, I chose to only

It's not critical, but there are two typos in that line: 
additon -> addition
2083 -> 2038

	Gabriel

> support the separate entry points, but that requires first supporting
> the regular ones with their own syscall numbers.
> 
> The IPC_64 is now implied by the new semctl/shmctl/msgctl system
> calls even on the architectures that require passing it with the ipc()
> multiplexer.
> 
> I'm not adding the new semtimedop() or semop() on 32-bit architectures,
> those will get implemented using the new semtimedop_time64() version
> that gets added along with the other time64 calls.
> Three 64-bit architectures (powerpc, s390 and sparc) get semtimedop().
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 00/29] y2038: add time64 syscalls
       [not found]   ` <CAK8P3a3xUpbk+Wpo5kdDtZ81jQuzEZH6jdmJJNeNM+acueg+Dw@mail.gmail.com>
@ 2019-01-18 17:19     ` Dennis Clarke
  0 siblings, 0 replies; 17+ messages in thread
From: Dennis Clarke @ 2019-01-18 17:19 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Rich Felker, linux-ia64, Linux-sh list, Benjamin Herrenschmidt,
	Heiko Carstens, linux-mips, Max Filippov, Networking,
	Deepa Dinamani, H. Peter Anvin, sparclinux, linux-arch,
	linux-s390, y2038 Mailman List, Michael Ellerman, Helge Deller,
	the arch/x86 maintainers, Russell King - ARM Linux, Ingo Molnar,
	Geert Uytterhoeven, Catalin Marinas, Firoz Khan, Matt Turner

On 1/18/19 12:14 PM, Arnd Bergmann wrote:
> On Fri, Jan 18, 2019 at 5:57 PM Dennis Clarke <dclarke@blastwave.org> wrote:
>>
>> On 1/18/19 11:18 AM, Arnd Bergmann wrote:
>>> This is a minor update of the patches I posted last week, I
>>> would like to add this into linux-next now, but would still do
>>> changes if there are concerns about the contents. The first
>>> version did not see a lot of replies, which could mean that
>>> either everyone is happy with it, or that it was largely ignored.
>>>
>>> See also the article at https://lwn.net/Articles/776435/.
>>
>> I would be happy to read "Approaching the kernel year-2038 end game"
>> however it is behind a pay wall.  Perhaps it may be best to just
>> host interesting articles about open source idea elsewhere.
> 
> It's a short summary of the current state.

Oh, I pay. Also to FSF and other places however I was merely ranting
very very quietly that so much open source is becoming commercialized
in so many ways.  Sort of expected really.

Pardon my little rant .. I will go back to hacking OpenSSL 1.1.1a and
trying to get Apache httpd 2.4.38 release running cleanly.

Dennis

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 00/29] y2038: add time64 syscalls
  2019-01-18 16:57 ` [PATCH v2 00/29] y2038: add time64 syscalls Dennis Clarke
       [not found]   ` <CAK8P3a3xUpbk+Wpo5kdDtZ81jQuzEZH6jdmJJNeNM+acueg+Dw@mail.gmail.com>
@ 2019-01-18 17:45   ` James Bottomley
  1 sibling, 0 replies; 17+ messages in thread
From: James Bottomley @ 2019-01-18 17:45 UTC (permalink / raw)
  To: Dennis Clarke, Arnd Bergmann, y2038, linux-api, linux-kernel,
	linux-arch
  Cc: mattst88, linux, catalin.marinas, will.deacon, tony.luck,
	fenghua.yu, geert, monstr, paul.burton, deller, benh, mpe,
	schwidefsky, heiko.carstens, dalias, davem, luto, tglx, mingo,
	hpa, x86, jcmvbkbc, akpm, deepa.kernel, ebiederm, firoz.khan,
	linux-alpha, linux-arm-kernel, linux-ia64, linux-m68k, linux-mips,
	linux-parisc, linuxppc-dev, linux-s390

On Fri, 2019-01-18 at 11:57 -0500, Dennis Clarke wrote:
> On 1/18/19 11:18 AM, Arnd Bergmann wrote:
> > This is a minor update of the patches I posted last week, I
> > would like to add this into linux-next now, but would still do
> > changes if there are concerns about the contents. The first
> > version did not see a lot of replies, which could mean that
> > either everyone is happy with it, or that it was largely ignored.
> > 
> > See also the article at https://lwn.net/Articles/776435/.
> 
> I would be happy to read "Approaching the kernel year-2038 end game"
> however it is behind a pay wall.  Perhaps it may be best to just
> host interesting articles about open source idea elsewhere.

Hey, this is an unfair characterization: lwn.net operates an early
access subscription model, so you can't read the above for 14 days
after publication without paying for an lwn.net subscription, but by
the time these patches are upstream there will be no paywall because it
will expire on 24 January and that URL will then be readable by all. 
That makes LWN.net a nice, reliable resource for us while still
supporting some business model to keep it going.

James

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 13/29] arch: add split IPC system calls where needed
  2019-01-18 17:18   ` Gabriel Paubert
@ 2019-01-18 19:30     ` Arnd Bergmann
  0 siblings, 0 replies; 17+ messages in thread
From: Arnd Bergmann @ 2019-01-18 19:30 UTC (permalink / raw)
  To: Gabriel Paubert
  Cc: y2038 Mailman List, Linux API, Linux Kernel Mailing List,
	linux-arch, Rich Felker, linux-ia64, Linux-sh list,
	Catalin Marinas, Will Deacon, Max Filippov, Deepa Dinamani,
	H. Peter Anvin, sparclinux, linux-s390, Helge Deller,
	the arch/x86 maintainers, Russell King - ARM Linux, Ingo Molnar,
	Geert Uytterhoeven

On Fri, Jan 18, 2019 at 6:20 PM Gabriel Paubert <paubert@iram.es> wrote:
>
> On Fri, Jan 18, 2019 at 05:18:19PM +0100, Arnd Bergmann wrote:
> > The IPC system call handling is highly inconsistent across architectures,
> > some use sys_ipc, some use separate calls, and some use both.  We also
> > have some architectures that require passing IPC_64 in the flags, and
> > others that set it implicitly.
> >
> > For the additon of a y2083 safe semtimedop() system call, I chose to only
>
> It's not critical, but there are two typos in that line:
> additon -> addition
> 2083 -> 2038

Fixed both, thanks!

     Arnd

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 29/29] y2038: add 64-bit time_t syscalls to all 32-bit architectures
       [not found]       ` <CALCETrWPj6dHEyo=AELoVjXGsiwuSpRp17x3CEWBHvp7i3cy+Q@mail.gmail.com>
@ 2019-01-19 14:28         ` Russell King - ARM Linux admin
       [not found]           ` <CAMuHMdXzQNEEDjWrmTph8Krovj1g2WhnBUaM=FvKB+J2fZqctA@mail.gmail.com>
  0 siblings, 1 reply; 17+ messages in thread
From: Russell King - ARM Linux admin @ 2019-01-19 14:28 UTC (permalink / raw)
  To: Andy Lutomirski
  Cc: Rich Felker, linux-ia64, Linux-sh list, Benjamin Herrenschmidt,
	Will Deacon, linux-mips, Max Filippov, Network Development,
	Deepa Dinamani, H. Peter Anvin, sparclinux, linux-arch,
	linux-s390, y2038 Mailman List, Michael Ellerman, Helge Deller,
	X86 ML, Ingo Molnar, Geert Uytterhoeven, Catalin Marinas,
	Firoz Khan, Matt Turner, Fenghua Yu, Arnd Bergmann

On Fri, Jan 18, 2019 at 11:53:25AM -0800, Andy Lutomirski wrote:
> On Fri, Jan 18, 2019 at 11:33 AM Arnd Bergmann <arnd@arndb.de> wrote:
> >
> > On Fri, Jan 18, 2019 at 7:50 PM Andy Lutomirski <luto@kernel.org> wrote:
> > > On Fri, Jan 18, 2019 at 8:25 AM Arnd Bergmann <arnd@arndb.de> wrote:
> > > > - Once we get to 512, we clash with the x32 numbers (unless
> > > >   we remove x32 support first), and probably have to skip
> > > >   a few more. I also considered using the 512..547 space
> > > >   for 32-bit-only calls (which never clash with x32), but
> > > >   that also seems to add a bit of complexity.
> > >
> > > I have a patch that I'll send soon to make x32 use its own table.  As
> > > far as I'm concerned, 547 is *it*.  548 is just a normal number and is
> > > not special.  But let's please not reuse 512..547 for other purposes
> > > on x86 variants -- that way lies even more confusion, IMO.
> >
> > Fair enough, the space for those numbers is cheap enough here.
> > I take it you mean we also should not reuse that number space if
> > we were to decide to remove x32 soon, but you are not worried
> > about clashing with arch/alpha when everything else uses consistent
> > numbers?
> >
> 
> I think we have two issues if we reuse those numbers for new syscalls.
> First, I'd really like to see new syscalls be numbered consistently
> everywhere, or at least on all x86 variants, and we can't on x32
> because they mean something else.  Perhaps more importantly, due to
> what is arguably a rather severe bug, issuing a native x86_64 syscall
> (x32 bit clear) with nr in the range 512..547 does *not* return
> -ENOSYS on a kernel with x32 enabled.  Instead it does something that
> is somewhat arbitrary.  With my patch applied, it will return -ENOSYS,
> but old kernels will still exist, and this will break syscall probing.
> 
> Can we perhaps just start the consistent numbers above 547 or maybe
> block out 512..547 in the new regime?

I don't think you gain much with that kind of scheme - it won't take
very long before an architecture misses having a syscall added, and
then someone else adds their own.  Been there with ARM - I was keeping
the syscall table in the same order as x86 for new syscalls, but now
that others have been adding syscalls to the table since I converted
ARM to the tabular form, that's now gone out the window.

So, I think it's completely pointless to do what you're suggesting.
We'll just end up with a big hole in the middle of the syscall table
and then revert back to random numbering of syscalls thereafter again.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up
According to speedtest.net: 11.9Mbps down 500kbps up
_______________________________________________
Y2038 mailing list
Y2038@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/y2038

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 08/29] m68k: assign syscall number for seccomp
       [not found] ` <20190118161835.2259170-9-arnd@arndb.de>
@ 2019-01-21  8:55   ` Geert Uytterhoeven
  0 siblings, 0 replies; 17+ messages in thread
From: Geert Uytterhoeven @ 2019-01-21  8:55 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Rich Felker, linux-ia64@vger.kernel.org, Linux-sh list,
	Benjamin Herrenschmidt, Heiko Carstens, linux-mips, Max Filippov,
	netdev, Deepa Dinamani, H. Peter Anvin, sparclinux, Linux-Arch,
	linux-s390, y2038 Mailman List, Michael Ellerman, Helge Deller,
	the arch/x86 maintainers, Russell King, Ingo Molnar, Firoz Khan,
	Catalin Marinas, Matt Turner, Fenghua Yu <fenghua.>

On Fri, Jan 18, 2019 at 5:20 PM Arnd Bergmann <arnd@arndb.de> wrote:
> Most architectures have assigned a numbers for the seccomp syscall
> even when they do not implement it.
>
> m68k is an exception here, so for consistency lets add the number.
> Unless CONFIG_SECCOMP is implemented, the system call just
> returns -ENOSYS.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>

Gr{oetje,eeting}s,

                        Geert


--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 29/29] y2038: add 64-bit time_t syscalls to all 32-bit architectures
       [not found]             ` <CAK8P3a04UC2dHVqx1gHXJQzsDw446h1ghLEuRe0xmUyJgrOktw@mail.gmail.com>
@ 2019-01-21 20:40               ` Arnd Bergmann
  0 siblings, 0 replies; 17+ messages in thread
From: Arnd Bergmann @ 2019-01-21 20:40 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Rich Felker, linux-ia64@vger.kernel.org, Linux-sh list,
	Benjamin Herrenschmidt, Heiko Carstens, linux-mips, Max Filippov,
	Network Development, Deepa Dinamani, H. Peter Anvin, sparclinux,
	linux-arch, linux-s390, y2038 Mailman List, Michael Ellerman,
	Helge Deller, X86 ML, Russell King - ARM Linux admin, Ingo Molnar,
	Firoz Khan, Catalin Marinas, Matt Turner, Fengh

On Mon, Jan 21, 2019 at 6:08 PM Arnd Bergmann <arnd@arndb.de> wrote:
> On Mon, Jan 21, 2019 at 9:19 AM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > Regardless, I'm wondering what to do with the holes marked "room for
> > arch specific calls".
> > When is a syscall really arch-specific, and can it be added there, and
> > when does it turn out (later) that it isn't, breaking the
> > synchronization again?
>
> We've had a bit of that already, with cacheflush(), which exists on
> a couple of architectures, including some that use the first
> 'arch specific' slot (244) of the asm-generic table. I think this
> will be rare enough that we can figure out a solution when we
> get there.
>
> > The pkey syscalls may be a bad example, as AFAIU they can be implemented
> > on some architectures, but not on some others.  Still, I had skipped them
> > when adding new syscalls to m68k.
> >
> > Perhaps we should get rid of the notion of "arch-specific syscalls", and
> > reserve a slot everywhere anyway?
>
> I don't mind calling the hole something else if that helps. Out of
> principle I would already assume that anything we add for x86
> or the generic table should be added everywhere, but we can
> make it broader than that.

Applying this fixup below,

     ARnd

diff --git a/arch/x86/entry/syscalls/syscall_32.tbl
b/arch/x86/entry/syscalls/syscall_32.tbl
index d9c2d2eea044..955ab6a3b61f 100644
--- a/arch/x86/entry/syscalls/syscall_32.tbl
+++ b/arch/x86/entry/syscalls/syscall_32.tbl
@@ -398,7 +398,7 @@
 384    i386    arch_prctl              sys_arch_prctl
 __ia32_compat_sys_arch_prctl
 385    i386    io_pgetevents           sys_io_pgetevents_time32
 __ia32_compat_sys_io_pgetevents
 386    i386    rseq                    sys_rseq
 __ia32_sys_rseq
-# room for arch specific syscalls
+# don't use numbers 387 through 392, add new calls at the end
 393    i386    semget                  sys_semget
 __ia32_sys_semget
 394    i386    semctl                  sys_semctl
 __ia32_compat_sys_semctl
 395    i386    shmget                  sys_shmget
 __ia32_sys_shmget
diff --git a/arch/x86/entry/syscalls/syscall_64.tbl
b/arch/x86/entry/syscalls/syscall_64.tbl
index 43a622aec07e..2ae92fddb6d5 100644
--- a/arch/x86/entry/syscalls/syscall_64.tbl
+++ b/arch/x86/entry/syscalls/syscall_64.tbl
@@ -343,6 +343,8 @@
 332    common  statx                   __x64_sys_statx
 333    common  io_pgetevents           __x64_sys_io_pgetevents
 334    common  rseq                    __x64_sys_rseq
+# don't use numbers 387 through 423, add new calls after the last
+# 'common' entry

 #
 # x32-specific system call numbers start at 512 to avoid cache impact
diff --git a/include/uapi/asm-generic/unistd.h
b/include/uapi/asm-generic/unistd.h
index 53831e4a4c86..acf9a07ab2ff 100644
--- a/include/uapi/asm-generic/unistd.h
+++ b/include/uapi/asm-generic/unistd.h
@@ -740,7 +740,7 @@ __SC_COMP_3264(__NR_io_pgetevents,
sys_io_pgetevents_time32, sys_io_pgetevents,
 __SYSCALL(__NR_rseq, sys_rseq)
 #define __NR_kexec_file_load 294
 __SYSCALL(__NR_kexec_file_load,     sys_kexec_file_load)
-/* 295 through 402 are unassigned to sync up with generic numbers */
+/* 295 through 402 are unassigned to sync up with generic numbers, don't use */
 #if __BITS_PER_LONG == 32
 #define __NR_clock_gettime64 403
 __SYSCALL(__NR_clock_gettime64, sys_clock_gettime)

^ permalink raw reply related	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2019-01-21 20:40 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20190118161835.2259170-1-arnd@arndb.de>
2019-01-18 16:18 ` [PATCH v2 01/29] ia64: add __NR_umount2 definition Arnd Bergmann
2019-01-18 16:18 ` [PATCH v2 02/29] ia64: add statx and io_pgetevents syscalls Arnd Bergmann
2019-01-18 16:18 ` [PATCH v2 03/29] ia64: assign syscall numbers for perf and seccomp Arnd Bergmann
2019-01-18 16:18 ` [PATCH v2 04/29] alpha: wire up io_pgetevents system call Arnd Bergmann
2019-01-18 16:18 ` [PATCH v2 06/29] ARM: add migrate_pages() " Arnd Bergmann
2019-01-18 16:18 ` [PATCH v2 07/29] ARM: add kexec_file_load system call number Arnd Bergmann
2019-01-18 16:18 ` [PATCH v2 10/29] sh: add statx system call Arnd Bergmann
2019-01-18 16:18 ` [PATCH v2 13/29] arch: add split IPC system calls where needed Arnd Bergmann
2019-01-18 17:18   ` Gabriel Paubert
2019-01-18 19:30     ` Arnd Bergmann
2019-01-18 16:18 ` [PATCH v2 14/29] arch: add pkey and rseq syscall numbers everywhere Arnd Bergmann
2019-01-18 16:57 ` [PATCH v2 00/29] y2038: add time64 syscalls Dennis Clarke
     [not found]   ` <CAK8P3a3xUpbk+Wpo5kdDtZ81jQuzEZH6jdmJJNeNM+acueg+Dw@mail.gmail.com>
2019-01-18 17:19     ` Dennis Clarke
2019-01-18 17:45   ` James Bottomley
     [not found] ` <20190118161835.2259170-30-arnd@arndb.de>
     [not found]   ` <CALCETrXqM5mhvwreN5y-9K99h1j9rs9MAVK-cNLC54s1fdHA6w@mail.gmail.com>
     [not found]     ` <CAK8P3a0V+xboaGAF2nqrYtpjXXA7y0LcvCKi4ngLTus1D_XZBA@mail.gmail.com>
     [not found]       ` <CALCETrWPj6dHEyo=AELoVjXGsiwuSpRp17x3CEWBHvp7i3cy+Q@mail.gmail.com>
2019-01-19 14:28         ` [PATCH v2 29/29] y2038: add 64-bit time_t syscalls to all 32-bit architectures Russell King - ARM Linux admin
     [not found]           ` <CAMuHMdXzQNEEDjWrmTph8Krovj1g2WhnBUaM=FvKB+J2fZqctA@mail.gmail.com>
     [not found]             ` <CAK8P3a04UC2dHVqx1gHXJQzsDw446h1ghLEuRe0xmUyJgrOktw@mail.gmail.com>
2019-01-21 20:40               ` Arnd Bergmann
     [not found] ` <20190118161835.2259170-9-arnd@arndb.de>
2019-01-21  8:55   ` [PATCH v2 08/29] m68k: assign syscall number for seccomp Geert Uytterhoeven

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox