Merge tag 'y2038-syscall-cleanup' of git://git.kernel.org:/pub/scm/linux/kernel/git/arnd/playground into timers/2038
Pull preparatory work for y2038 changes from Arnd Bergmann: System call unification and cleanup The system call tables have diverged a bit over the years, and a number of the recent additions never made it into all architectures, for one reason or another. This is an attempt to clean it up as far as we can without breaking compatibility, doing a number of steps: - Add system calls that have not yet been integrated into all architectures but that we definitely want there. This includes {,f}statfs64() and get{eg,eu,g,p,u,pp}id() on alpha, which have been missing traditionally. - The s390 compat syscall handling is cleaned up to be more like what we do on other architectures, while keeping the 31-bit pointer extension. This was merged as a shared branch by the s390 maintainers and is included here in order to base the other patches on top. - Add the separate ipc syscalls on all architectures that traditionally only had sys_ipc(). This version is done without support for IPC_OLD that is we have in sys_ipc. The new semtimedop_time64 syscall will only be added here, not in sys_ipc - Add syscall numbers for a couple of syscalls that we probably don't need everywhere, in particular pkey_* and rseq, for the purpose of symmetry: if it's in asm-generic/unistd.h, it makes sense to have it everywhere. I expect that any future system calls will get assigned on all platforms together, even when they appear to be specific to a single architecture. - Prepare for having the same system call numbers for any future calls. In combination with the generated tables, this hopefully makes it easier to add new calls across all architectures together. All of the above are technically separate from the y2038 work, but are done as preparation before we add the new 64-bit time_t system calls everywhere, providing a common baseline set of system calls. I expect that glibc and other libraries that want to use 64-bit time_t will require linux-5.1 kernel headers for building in the future, and at a much later point may also require linux-5.1 or a later version as the minimum kernel at runtime. Having a common baseline then allows the removal of many architecture or kernel version specific workarounds.
This commit is contained in:
@@ -54,20 +54,7 @@
|
||||
#define __ARCH_WANT_SYS_CLONE
|
||||
|
||||
/* whitelists for checksyscalls */
|
||||
#define __IGNORE_select
|
||||
#define __IGNORE_vfork
|
||||
#define __IGNORE_time
|
||||
#define __IGNORE_uselib
|
||||
#define __IGNORE_fadvise64_64
|
||||
#define __IGNORE_getdents64
|
||||
#if _MIPS_SIM == _MIPS_SIM_NABI32
|
||||
#define __IGNORE_truncate64
|
||||
#define __IGNORE_ftruncate64
|
||||
#define __IGNORE_stat64
|
||||
#define __IGNORE_lstat64
|
||||
#define __IGNORE_fstat64
|
||||
#define __IGNORE_fstatat64
|
||||
#endif
|
||||
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
||||
|
@@ -37,7 +37,7 @@
|
||||
27 n32 madvise sys_madvise
|
||||
28 n32 shmget sys_shmget
|
||||
29 n32 shmat sys_shmat
|
||||
30 n32 shmctl compat_sys_shmctl
|
||||
30 n32 shmctl compat_sys_old_shmctl
|
||||
31 n32 dup sys_dup
|
||||
32 n32 dup2 sys_dup2
|
||||
33 n32 pause sys_pause
|
||||
@@ -71,12 +71,12 @@
|
||||
61 n32 uname sys_newuname
|
||||
62 n32 semget sys_semget
|
||||
63 n32 semop sys_semop
|
||||
64 n32 semctl compat_sys_semctl
|
||||
64 n32 semctl compat_sys_old_semctl
|
||||
65 n32 shmdt sys_shmdt
|
||||
66 n32 msgget sys_msgget
|
||||
67 n32 msgsnd compat_sys_msgsnd
|
||||
68 n32 msgrcv compat_sys_msgrcv
|
||||
69 n32 msgctl compat_sys_msgctl
|
||||
69 n32 msgctl compat_sys_old_msgctl
|
||||
70 n32 fcntl compat_sys_fcntl
|
||||
71 n32 flock sys_flock
|
||||
72 n32 fsync sys_fsync
|
||||
|
@@ -37,7 +37,7 @@
|
||||
27 n64 madvise sys_madvise
|
||||
28 n64 shmget sys_shmget
|
||||
29 n64 shmat sys_shmat
|
||||
30 n64 shmctl sys_shmctl
|
||||
30 n64 shmctl sys_old_shmctl
|
||||
31 n64 dup sys_dup
|
||||
32 n64 dup2 sys_dup2
|
||||
33 n64 pause sys_pause
|
||||
@@ -71,12 +71,12 @@
|
||||
61 n64 uname sys_newuname
|
||||
62 n64 semget sys_semget
|
||||
63 n64 semop sys_semop
|
||||
64 n64 semctl sys_semctl
|
||||
64 n64 semctl sys_old_semctl
|
||||
65 n64 shmdt sys_shmdt
|
||||
66 n64 msgget sys_msgget
|
||||
67 n64 msgsnd sys_msgsnd
|
||||
68 n64 msgrcv sys_msgrcv
|
||||
69 n64 msgctl sys_msgctl
|
||||
69 n64 msgctl sys_old_msgctl
|
||||
70 n64 fcntl sys_fcntl
|
||||
71 n64 flock sys_flock
|
||||
72 n64 fsync sys_fsync
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user