ipc: rename old-style shmctl/semctl/msgctl syscalls
The behavior of these system calls is slightly different between architectures, as determined by the CONFIG_ARCH_WANT_IPC_PARSE_VERSION symbol. Most architectures that implement the split IPC syscalls don't set that symbol and only get the modern version, but alpha, arm, microblaze, mips-n32, mips-n64 and xtensa expect the caller to pass the IPC_64 flag. For the architectures that so far only implement sys_ipc(), i.e. m68k, mips-o32, powerpc, s390, sh, sparc, and x86-32, we want the new behavior when adding the split syscalls, so we need to distinguish between the two groups of architectures. The method I picked for this distinction is to have a separate system call entry point: sys_old_*ctl() now uses ipc_parse_version, while sys_*ctl() does not. The system call tables of the five architectures are changed accordingly. As an additional benefit, we no longer need the configuration specific definition for ipc_parse_version(), it always does the same thing now, but simply won't get called on architectures with the modern interface. A small downside is that on architectures that do set ARCH_WANT_IPC_PARSE_VERSION, we now have an extra set of entry points that are never called. They only add a few bytes of bloat, so it seems better to keep them compared to adding yet another Kconfig symbol. I considered adding new syscall numbers for the IPC_64 variants for consistency, but decided against that for now. Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
@@ -103,7 +103,7 @@
|
||||
91 common madvise sys_madvise
|
||||
92 common shmget sys_shmget
|
||||
93 common shmat xtensa_shmat
|
||||
94 common shmctl sys_shmctl
|
||||
94 common shmctl sys_old_shmctl
|
||||
95 common shmdt sys_shmdt
|
||||
# Socket Operations
|
||||
96 common socket sys_socket
|
||||
@@ -177,12 +177,12 @@
|
||||
161 common semtimedop sys_semtimedop
|
||||
162 common semget sys_semget
|
||||
163 common semop sys_semop
|
||||
164 common semctl sys_semctl
|
||||
164 common semctl sys_old_semctl
|
||||
165 common available165 sys_ni_syscall
|
||||
166 common msgget sys_msgget
|
||||
167 common msgsnd sys_msgsnd
|
||||
168 common msgrcv sys_msgrcv
|
||||
169 common msgctl sys_msgctl
|
||||
169 common msgctl sys_old_msgctl
|
||||
170 common available170 sys_ni_syscall
|
||||
# File System
|
||||
171 common umount2 sys_umount
|
||||
|
Reference in New Issue
Block a user