aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/s390/include/asm/unistd.h20
-rw-r--r--arch/s390/include/uapi/asm/unistd.h19
-rw-r--r--arch/s390/kernel/compat_wrapper.c7
-rw-r--r--arch/s390/kernel/syscalls.S17
4 files changed, 42 insertions, 21 deletions
diff --git a/arch/s390/include/asm/unistd.h b/arch/s390/include/asm/unistd.h
index 525cef73b085..02613bad8bbb 100644
--- a/arch/s390/include/asm/unistd.h
+++ b/arch/s390/include/asm/unistd.h
@@ -8,28 +8,8 @@
8 8
9#include <uapi/asm/unistd.h> 9#include <uapi/asm/unistd.h>
10 10
11
12#define __IGNORE_time 11#define __IGNORE_time
13 12
14/* Ignore system calls that are also reachable via sys_socketcall */
15#define __IGNORE_recvmmsg
16#define __IGNORE_sendmmsg
17#define __IGNORE_socket
18#define __IGNORE_socketpair
19#define __IGNORE_bind
20#define __IGNORE_connect
21#define __IGNORE_listen
22#define __IGNORE_accept4
23#define __IGNORE_getsockopt
24#define __IGNORE_setsockopt
25#define __IGNORE_getsockname
26#define __IGNORE_getpeername
27#define __IGNORE_sendto
28#define __IGNORE_sendmsg
29#define __IGNORE_recvfrom
30#define __IGNORE_recvmsg
31#define __IGNORE_shutdown
32
33#define __ARCH_WANT_OLD_READDIR 13#define __ARCH_WANT_OLD_READDIR
34#define __ARCH_WANT_SYS_ALARM 14#define __ARCH_WANT_SYS_ALARM
35#define __ARCH_WANT_SYS_GETHOSTNAME 15#define __ARCH_WANT_SYS_GETHOSTNAME
diff --git a/arch/s390/include/uapi/asm/unistd.h b/arch/s390/include/uapi/asm/unistd.h
index ff74d4976a6d..a848adba1504 100644
--- a/arch/s390/include/uapi/asm/unistd.h
+++ b/arch/s390/include/uapi/asm/unistd.h
@@ -292,7 +292,24 @@
292#define __NR_execveat 354 292#define __NR_execveat 354
293#define __NR_userfaultfd 355 293#define __NR_userfaultfd 355
294#define __NR_membarrier 356 294#define __NR_membarrier 356
295#define NR_syscalls 357 295#define __NR_recvmmsg 357
296#define __NR_sendmmsg 358
297#define __NR_socket 359
298#define __NR_socketpair 360
299#define __NR_bind 361
300#define __NR_connect 362
301#define __NR_listen 363
302#define __NR_accept4 364
303#define __NR_getsockopt 365
304#define __NR_setsockopt 366
305#define __NR_getsockname 367
306#define __NR_getpeername 368
307#define __NR_sendto 369
308#define __NR_sendmsg 370
309#define __NR_recvfrom 371
310#define __NR_recvmsg 372
311#define __NR_shutdown 373
312#define NR_syscalls 374
296 313
297/* 314/*
298 * There are some system calls that are not present on 64 bit, some 315 * There are some system calls that are not present on 64 bit, some
diff --git a/arch/s390/kernel/compat_wrapper.c b/arch/s390/kernel/compat_wrapper.c
index ada630135824..09f194052df3 100644
--- a/arch/s390/kernel/compat_wrapper.c
+++ b/arch/s390/kernel/compat_wrapper.c
@@ -169,3 +169,10 @@ COMPAT_SYSCALL_WRAP2(memfd_create, const char __user *, uname, unsigned int, fla
169COMPAT_SYSCALL_WRAP3(bpf, int, cmd, union bpf_attr *, attr, unsigned int, size); 169COMPAT_SYSCALL_WRAP3(bpf, int, cmd, union bpf_attr *, attr, unsigned int, size);
170COMPAT_SYSCALL_WRAP3(s390_pci_mmio_write, const unsigned long, mmio_addr, const void __user *, user_buffer, const size_t, length); 170COMPAT_SYSCALL_WRAP3(s390_pci_mmio_write, const unsigned long, mmio_addr, const void __user *, user_buffer, const size_t, length);
171COMPAT_SYSCALL_WRAP3(s390_pci_mmio_read, const unsigned long, mmio_addr, void __user *, user_buffer, const size_t, length); 171COMPAT_SYSCALL_WRAP3(s390_pci_mmio_read, const unsigned long, mmio_addr, void __user *, user_buffer, const size_t, length);
172COMPAT_SYSCALL_WRAP4(socketpair, int, family, int, type, int, protocol, int __user *, usockvec);
173COMPAT_SYSCALL_WRAP3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen);
174COMPAT_SYSCALL_WRAP3(connect, int, fd, struct sockaddr __user *, uservaddr, int, addrlen);
175COMPAT_SYSCALL_WRAP4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr, int __user *, upeer_addrlen, int, flags);
176COMPAT_SYSCALL_WRAP3(getsockname, int, fd, struct sockaddr __user *, usockaddr, int __user *, usockaddr_len);
177COMPAT_SYSCALL_WRAP3(getpeername, int, fd, struct sockaddr __user *, usockaddr, int __user *, usockaddr_len);
178COMPAT_SYSCALL_WRAP6(sendto, int, fd, void __user *, buff, size_t, len, unsigned int, flags, struct sockaddr __user *, addr, int, addr_len);
diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S
index 996f95a06bd7..8c56929c8d82 100644
--- a/arch/s390/kernel/syscalls.S
+++ b/arch/s390/kernel/syscalls.S
@@ -365,3 +365,20 @@ SYSCALL(sys_s390_pci_mmio_read,compat_sys_s390_pci_mmio_read)
365SYSCALL(sys_execveat,compat_sys_execveat) 365SYSCALL(sys_execveat,compat_sys_execveat)
366SYSCALL(sys_userfaultfd,sys_userfaultfd) /* 355 */ 366SYSCALL(sys_userfaultfd,sys_userfaultfd) /* 355 */
367SYSCALL(sys_membarrier,sys_membarrier) 367SYSCALL(sys_membarrier,sys_membarrier)
368SYSCALL(sys_recvmmsg,compat_sys_recvmmsg)
369SYSCALL(sys_sendmmsg,compat_sys_sendmmsg)
370SYSCALL(sys_socket,sys_socket)
371SYSCALL(sys_socketpair,compat_sys_socketpair) /* 360 */
372SYSCALL(sys_bind,sys_bind)
373SYSCALL(sys_connect,sys_connect)
374SYSCALL(sys_listen,sys_listen)
375SYSCALL(sys_accept4,sys_accept4)
376SYSCALL(sys_getsockopt,compat_sys_getsockopt) /* 365 */
377SYSCALL(sys_setsockopt,compat_sys_setsockopt)
378SYSCALL(sys_getsockname,compat_sys_getsockname)
379SYSCALL(sys_getpeername,compat_sys_getpeername)
380SYSCALL(sys_sendto,compat_sys_sendto)
381SYSCALL(sys_sendmsg,compat_sys_sendmsg) /* 370 */
382SYSCALL(sys_recvfrom,compat_sys_recvfrom)
383SYSCALL(sys_recvmsg,compat_sys_recvmsg)
384SYSCALL(sys_shutdown,sys_shutdown)