summaryrefslogtreecommitdiffstats
path: root/ipc/syscall.c
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2019-01-16 08:15:20 -0500
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2019-01-18 03:33:18 -0500
commit58fa4a410fc31afe08d0d0c6b6d8860c22ec17c2 (patch)
tree77b202fac335c9b4e142360ccab85e75fcd6f05e /ipc/syscall.c
parent1ecff5ef0a70e7fd32a0b9cf6ad7ac8285462697 (diff)
ipc: introduce ksys_ipc()/compat_ksys_ipc() for s390
The sys_ipc() and compat_ksys_ipc() functions are meant to only be used from the system call table, not called by another function. Introduce ksys_*() interfaces for this purpose, as we have done for many other system calls. Link: https://lore.kernel.org/lkml/20190116131527.2071570-3-arnd@arndb.de Signed-off-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com> [heiko.carstens@de.ibm.com: compile fix for !CONFIG_COMPAT] Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'ipc/syscall.c')
-rw-r--r--ipc/syscall.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/ipc/syscall.c b/ipc/syscall.c
index 1ac06e3983c0..3cf8ad703a4d 100644
--- a/ipc/syscall.c
+++ b/ipc/syscall.c
@@ -17,8 +17,8 @@
17#include <linux/shm.h> 17#include <linux/shm.h>
18#include <linux/uaccess.h> 18#include <linux/uaccess.h>
19 19
20SYSCALL_DEFINE6(ipc, unsigned int, call, int, first, unsigned long, second, 20int ksys_ipc(unsigned int call, int first, unsigned long second,
21 unsigned long, third, void __user *, ptr, long, fifth) 21 unsigned long third, void __user * ptr, long fifth)
22{ 22{
23 int version, ret; 23 int version, ret;
24 24
@@ -106,6 +106,12 @@ SYSCALL_DEFINE6(ipc, unsigned int, call, int, first, unsigned long, second,
106 return -ENOSYS; 106 return -ENOSYS;
107 } 107 }
108} 108}
109
110SYSCALL_DEFINE6(ipc, unsigned int, call, int, first, unsigned long, second,
111 unsigned long, third, void __user *, ptr, long, fifth)
112{
113 return ksys_ipc(call, first, second, third, ptr, fifth);
114}
109#endif 115#endif
110 116
111#ifdef CONFIG_COMPAT 117#ifdef CONFIG_COMPAT
@@ -121,8 +127,8 @@ struct compat_ipc_kludge {
121}; 127};
122 128
123#ifdef CONFIG_ARCH_WANT_OLD_COMPAT_IPC 129#ifdef CONFIG_ARCH_WANT_OLD_COMPAT_IPC
124COMPAT_SYSCALL_DEFINE6(ipc, u32, call, int, first, int, second, 130int compat_ksys_ipc(u32 call, int first, int second,
125 u32, third, compat_uptr_t, ptr, u32, fifth) 131 u32 third, compat_uptr_t ptr, u32 fifth)
126{ 132{
127 int version; 133 int version;
128 u32 pad; 134 u32 pad;
@@ -195,5 +201,11 @@ COMPAT_SYSCALL_DEFINE6(ipc, u32, call, int, first, int, second,
195 201
196 return -ENOSYS; 202 return -ENOSYS;
197} 203}
204
205COMPAT_SYSCALL_DEFINE6(ipc, u32, call, int, first, int, second,
206 u32, third, compat_uptr_t, ptr, u32, fifth)
207{
208 return compat_ksys_ipc(call, first, second, third, ptr, fifth);
209}
198#endif 210#endif
199#endif 211#endif