summaryrefslogtreecommitdiffstats
path: root/arch/s390
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2018-02-01 12:31:04 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2018-02-01 12:31:04 -0500
commitca0c836d88dd2705879d24a754343467fc5a5ba6 (patch)
tree0a6aa38735d9cc74dbf88c00b7d68b79db922a21 /arch/s390
parent255442c93843f52b6891b21d0b485bf2c97f93c3 (diff)
parent47d67facb057b15d29d65170df06b102a3ddd34e (diff)
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
Pull s390 updates from Martin Schwidefsky: "Bug fixes, small improvements and one notable change: the system call table and the unistd.h header are now generated automatically with a shell script from a text file" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: s390/decompressor: discard __ksymtab and .eh_frame sections s390: fix handling of -1 in set{,fs}[gu]id16 syscalls s390/tools: generate header files in arch/s390/include/generated/ s390/syscalls: use generated syscall_table.h and unistd.h header files s390/syscalls: add Makefile to generate system call header files s390/syscalls: add syscalltbl script s390/syscalls: add system call table s390/decompressor: swap .text and .rodata.compressed sections s390/sclp: fix .data section specification s390/ipl: avoid usage of __section(.data) s390/head: replace hard coded values with constants s390/disassembler: add generated gen_opcode_table tool to .gitignore s390: remove bogus system call table entries s390/kprobes: remove duplicate includes s390/dasd: Remove dead return code checks s390/dasd: Simplify code s390/vdso: revise CFI annotations of vDSO functions s390/kernel: emit CFI data in .debug_frame and discard .eh_frame sections
Diffstat (limited to 'arch/s390')
-rw-r--r--arch/s390/Makefile14
-rw-r--r--arch/s390/boot/compressed/Makefile1
-rw-r--r--arch/s390/boot/compressed/vmlinux.lds.S12
-rw-r--r--arch/s390/include/asm/Kbuild5
-rw-r--r--arch/s390/include/asm/dis.h2
-rw-r--r--arch/s390/include/asm/dwarf.h37
-rw-r--r--arch/s390/include/asm/facility.h2
-rw-r--r--arch/s390/include/asm/unistd.h1
-rw-r--r--arch/s390/include/uapi/asm/Kbuild3
-rw-r--r--arch/s390/include/uapi/asm/unistd.h401
-rw-r--r--arch/s390/kernel/compat_linux.c8
-rw-r--r--arch/s390/kernel/entry.S4
-rw-r--r--arch/s390/kernel/head.S10
-rw-r--r--arch/s390/kernel/ipl.c12
-rw-r--r--arch/s390/kernel/kprobes.c1
-rw-r--r--arch/s390/kernel/syscalls.S392
-rw-r--r--arch/s390/kernel/syscalls/Makefile52
-rw-r--r--arch/s390/kernel/syscalls/syscall.tbl390
-rwxr-xr-xarch/s390/kernel/syscalls/syscalltbl232
-rw-r--r--arch/s390/kernel/vdso32/Makefile3
-rw-r--r--arch/s390/kernel/vdso32/clock_getres.S5
-rw-r--r--arch/s390/kernel/vdso32/clock_gettime.S17
-rw-r--r--arch/s390/kernel/vdso32/getcpu.S5
-rw-r--r--arch/s390/kernel/vdso32/gettimeofday.S9
-rw-r--r--arch/s390/kernel/vdso64/Makefile3
-rw-r--r--arch/s390/kernel/vdso64/clock_getres.S5
-rw-r--r--arch/s390/kernel/vdso64/clock_gettime.S21
-rw-r--r--arch/s390/kernel/vdso64/getcpu.S5
-rw-r--r--arch/s390/kernel/vdso64/gettimeofday.S9
-rw-r--r--arch/s390/kernel/vmlinux.lds.S3
-rw-r--r--arch/s390/tools/.gitignore1
-rw-r--r--arch/s390/tools/Makefile23
-rw-r--r--arch/s390/tools/gen_facilities.c4
-rw-r--r--arch/s390/tools/gen_opcode_table.c4
34 files changed, 852 insertions, 844 deletions
diff --git a/arch/s390/Makefile b/arch/s390/Makefile
index de54cfc6109d..fd691c4ff89e 100644
--- a/arch/s390/Makefile
+++ b/arch/s390/Makefile
@@ -88,9 +88,13 @@ KBUILD_CFLAGS += -DCC_USING_HOTPATCH
88endif 88endif
89endif 89endif
90 90
91# Test CFI features of binutils
92cfi := $(call as-instr,.cfi_startproc\n.cfi_val_offset 15$(comma)-160\n.cfi_endproc,-DCONFIG_AS_CFI_VAL_OFFSET=1)
93
91KBUILD_CFLAGS += -mbackchain -msoft-float $(cflags-y) 94KBUILD_CFLAGS += -mbackchain -msoft-float $(cflags-y)
92KBUILD_CFLAGS += -pipe -fno-strength-reduce -Wno-sign-compare 95KBUILD_CFLAGS += -pipe -fno-strength-reduce -Wno-sign-compare
93KBUILD_AFLAGS += $(aflags-y) 96KBUILD_CFLAGS += -fno-asynchronous-unwind-tables $(cfi)
97KBUILD_AFLAGS += $(aflags-y) $(cfi)
94 98
95OBJCOPYFLAGS := -O binary 99OBJCOPYFLAGS := -O binary
96 100
@@ -107,6 +111,7 @@ drivers-y += drivers/s390/
107drivers-$(CONFIG_OPROFILE) += arch/s390/oprofile/ 111drivers-$(CONFIG_OPROFILE) += arch/s390/oprofile/
108 112
109boot := arch/s390/boot 113boot := arch/s390/boot
114syscalls := arch/s390/kernel/syscalls
110tools := arch/s390/tools 115tools := arch/s390/tools
111 116
112all: image bzImage 117all: image bzImage
@@ -128,9 +133,12 @@ archclean:
128 $(Q)$(MAKE) $(clean)=$(boot) 133 $(Q)$(MAKE) $(clean)=$(boot)
129 $(Q)$(MAKE) $(clean)=$(tools) 134 $(Q)$(MAKE) $(clean)=$(tools)
130 135
136archheaders:
137 $(Q)$(MAKE) $(build)=$(syscalls) uapi
138
131archprepare: 139archprepare:
132 $(Q)$(MAKE) $(build)=$(tools) include/generated/facilities.h 140 $(Q)$(MAKE) $(build)=$(syscalls) kapi
133 $(Q)$(MAKE) $(build)=$(tools) include/generated/dis.h 141 $(Q)$(MAKE) $(build)=$(tools) kapi
134 142
135# Don't use tabs in echo arguments 143# Don't use tabs in echo arguments
136define archhelp 144define archhelp
diff --git a/arch/s390/boot/compressed/Makefile b/arch/s390/boot/compressed/Makefile
index 29e3dc99b916..26d6a94f40f6 100644
--- a/arch/s390/boot/compressed/Makefile
+++ b/arch/s390/boot/compressed/Makefile
@@ -14,6 +14,7 @@ targets += misc.o piggy.o sizes.h head.o
14KBUILD_CFLAGS := -m64 -D__KERNEL__ -O2 14KBUILD_CFLAGS := -m64 -D__KERNEL__ -O2
15KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING -D__NO_FORTIFY 15KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING -D__NO_FORTIFY
16KBUILD_CFLAGS += $(cflags-y) -fno-delete-null-pointer-checks -msoft-float 16KBUILD_CFLAGS += $(cflags-y) -fno-delete-null-pointer-checks -msoft-float
17KBUILD_CFLAGS += -fno-asynchronous-unwind-tables
17KBUILD_CFLAGS += $(call cc-option,-mpacked-stack) 18KBUILD_CFLAGS += $(call cc-option,-mpacked-stack)
18KBUILD_CFLAGS += $(call cc-option,-ffreestanding) 19KBUILD_CFLAGS += $(call cc-option,-ffreestanding)
19 20
diff --git a/arch/s390/boot/compressed/vmlinux.lds.S b/arch/s390/boot/compressed/vmlinux.lds.S
index 88e46d4a7784..8150132b144f 100644
--- a/arch/s390/boot/compressed/vmlinux.lds.S
+++ b/arch/s390/boot/compressed/vmlinux.lds.S
@@ -17,15 +17,15 @@ SECTIONS
17 HEAD_TEXT 17 HEAD_TEXT
18 _ehead = . ; 18 _ehead = . ;
19 } 19 }
20 .rodata.compressed : {
21 *(.rodata.compressed)
22 }
23 .text : { 20 .text : {
24 _text = .; /* Text */ 21 _text = .; /* Text */
25 *(.text) 22 *(.text)
26 *(.text.*) 23 *(.text.*)
27 _etext = . ; 24 _etext = . ;
28 } 25 }
26 .rodata.compressed : {
27 *(.rodata.compressed)
28 }
29 .rodata : { 29 .rodata : {
30 _rodata = . ; 30 _rodata = . ;
31 *(.rodata) /* read-only data */ 31 *(.rodata) /* read-only data */
@@ -48,4 +48,10 @@ SECTIONS
48 _ebss = .; 48 _ebss = .;
49 } 49 }
50 _end = .; 50 _end = .;
51
52 /* Sections to be discarded */
53 /DISCARD/ : {
54 *(.eh_frame)
55 *(*__ksymtab*)
56 }
51} 57}
diff --git a/arch/s390/include/asm/Kbuild b/arch/s390/include/asm/Kbuild
index dade72be127b..f6c2ba93b21c 100644
--- a/arch/s390/include/asm/Kbuild
+++ b/arch/s390/include/asm/Kbuild
@@ -1,4 +1,9 @@
1# SPDX-License-Identifier: GPL-2.0 1# SPDX-License-Identifier: GPL-2.0
2generated-y += dis-defs.h
3generated-y += facility-defs.h
4generated-y += syscall_table.h
5generated-y += unistd_nr.h
6
2generic-y += asm-offsets.h 7generic-y += asm-offsets.h
3generic-y += cacheflush.h 8generic-y += cacheflush.h
4generic-y += clkdev.h 9generic-y += clkdev.h
diff --git a/arch/s390/include/asm/dis.h b/arch/s390/include/asm/dis.h
index b0480c60a8e1..c18ed6091914 100644
--- a/arch/s390/include/asm/dis.h
+++ b/arch/s390/include/asm/dis.h
@@ -9,7 +9,7 @@
9#ifndef __ASM_S390_DIS_H__ 9#ifndef __ASM_S390_DIS_H__
10#define __ASM_S390_DIS_H__ 10#define __ASM_S390_DIS_H__
11 11
12#include <generated/dis.h> 12#include <asm/dis-defs.h>
13 13
14static inline int insn_length(unsigned char code) 14static inline int insn_length(unsigned char code)
15{ 15{
diff --git a/arch/s390/include/asm/dwarf.h b/arch/s390/include/asm/dwarf.h
new file mode 100644
index 000000000000..4f21ae561e4d
--- /dev/null
+++ b/arch/s390/include/asm/dwarf.h
@@ -0,0 +1,37 @@
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _ASM_S390_DWARF_H
3#define _ASM_S390_DWARF_H
4
5#ifdef __ASSEMBLY__
6
7#define CFI_STARTPROC .cfi_startproc
8#define CFI_ENDPROC .cfi_endproc
9#define CFI_DEF_CFA_OFFSET .cfi_def_cfa_offset
10#define CFI_ADJUST_CFA_OFFSET .cfi_adjust_cfa_offset
11#define CFI_RESTORE .cfi_restore
12
13#ifdef CONFIG_AS_CFI_VAL_OFFSET
14#define CFI_VAL_OFFSET .cfi_val_offset
15#else
16#define CFI_VAL_OFFSET #
17#endif
18
19#ifndef BUILD_VDSO
20 /*
21 * Emit CFI data in .debug_frame sections and not in .eh_frame
22 * sections. The .eh_frame CFI is used for runtime unwind
23 * information that is not being used. Hence, vmlinux.lds.S
24 * can discard the .eh_frame sections.
25 */
26 .cfi_sections .debug_frame
27#else
28 /*
29 * For vDSO, emit CFI data in both, .eh_frame and .debug_frame
30 * sections.
31 */
32 .cfi_sections .eh_frame, .debug_frame
33#endif
34
35#endif /* __ASSEMBLY__ */
36
37#endif /* _ASM_S390_DWARF_H */
diff --git a/arch/s390/include/asm/facility.h b/arch/s390/include/asm/facility.h
index f040644575b7..fbe0c4be3cd8 100644
--- a/arch/s390/include/asm/facility.h
+++ b/arch/s390/include/asm/facility.h
@@ -8,7 +8,7 @@
8#ifndef __ASM_FACILITY_H 8#ifndef __ASM_FACILITY_H
9#define __ASM_FACILITY_H 9#define __ASM_FACILITY_H
10 10
11#include <generated/facilities.h> 11#include <asm/facility-defs.h>
12#include <linux/string.h> 12#include <linux/string.h>
13#include <linux/preempt.h> 13#include <linux/preempt.h>
14#include <asm/lowcore.h> 14#include <asm/lowcore.h>
diff --git a/arch/s390/include/asm/unistd.h b/arch/s390/include/asm/unistd.h
index 7807093b73be..fd79c0d35dc4 100644
--- a/arch/s390/include/asm/unistd.h
+++ b/arch/s390/include/asm/unistd.h
@@ -8,6 +8,7 @@
8#define _ASM_S390_UNISTD_H_ 8#define _ASM_S390_UNISTD_H_
9 9
10#include <uapi/asm/unistd.h> 10#include <uapi/asm/unistd.h>
11#include <asm/unistd_nr.h>
11 12
12#define __IGNORE_time 13#define __IGNORE_time
13#define __IGNORE_pkey_mprotect 14#define __IGNORE_pkey_mprotect
diff --git a/arch/s390/include/uapi/asm/Kbuild b/arch/s390/include/uapi/asm/Kbuild
index 92b7c9b3e641..faef3f7e8353 100644
--- a/arch/s390/include/uapi/asm/Kbuild
+++ b/arch/s390/include/uapi/asm/Kbuild
@@ -2,6 +2,9 @@
2# UAPI Header export list 2# UAPI Header export list
3include include/uapi/asm-generic/Kbuild.asm 3include include/uapi/asm-generic/Kbuild.asm
4 4
5generated-y += unistd_32.h
6generated-y += unistd_64.h
7
5generic-y += errno.h 8generic-y += errno.h
6generic-y += fcntl.h 9generic-y += fcntl.h
7generic-y += ioctl.h 10generic-y += ioctl.h
diff --git a/arch/s390/include/uapi/asm/unistd.h b/arch/s390/include/uapi/asm/unistd.h
index 725120939051..01b5fe8b9db6 100644
--- a/arch/s390/include/uapi/asm/unistd.h
+++ b/arch/s390/include/uapi/asm/unistd.h
@@ -8,405 +8,10 @@
8#ifndef _UAPI_ASM_S390_UNISTD_H_ 8#ifndef _UAPI_ASM_S390_UNISTD_H_
9#define _UAPI_ASM_S390_UNISTD_H_ 9#define _UAPI_ASM_S390_UNISTD_H_
10 10
11/* 11#ifdef __s390x__
12 * This file contains the system call numbers. 12#include <asm/unistd_64.h>
13 */
14
15#define __NR_exit 1
16#define __NR_fork 2
17#define __NR_read 3
18#define __NR_write 4
19#define __NR_open 5
20#define __NR_close 6
21#define __NR_restart_syscall 7
22#define __NR_creat 8
23#define __NR_link 9
24#define __NR_unlink 10
25#define __NR_execve 11
26#define __NR_chdir 12
27#define __NR_mknod 14
28#define __NR_chmod 15
29#define __NR_lseek 19
30#define __NR_getpid 20
31#define __NR_mount 21
32#define __NR_umount 22
33#define __NR_ptrace 26
34#define __NR_alarm 27
35#define __NR_pause 29
36#define __NR_utime 30
37#define __NR_access 33
38#define __NR_nice 34
39#define __NR_sync 36
40#define __NR_kill 37
41#define __NR_rename 38
42#define __NR_mkdir 39
43#define __NR_rmdir 40
44#define __NR_dup 41
45#define __NR_pipe 42
46#define __NR_times 43
47#define __NR_brk 45
48#define __NR_signal 48
49#define __NR_acct 51
50#define __NR_umount2 52
51#define __NR_ioctl 54
52#define __NR_fcntl 55
53#define __NR_setpgid 57
54#define __NR_umask 60
55#define __NR_chroot 61
56#define __NR_ustat 62
57#define __NR_dup2 63
58#define __NR_getppid 64
59#define __NR_getpgrp 65
60#define __NR_setsid 66
61#define __NR_sigaction 67
62#define __NR_sigsuspend 72
63#define __NR_sigpending 73
64#define __NR_sethostname 74
65#define __NR_setrlimit 75
66#define __NR_getrusage 77
67#define __NR_gettimeofday 78
68#define __NR_settimeofday 79
69#define __NR_symlink 83
70#define __NR_readlink 85
71#define __NR_uselib 86
72#define __NR_swapon 87
73#define __NR_reboot 88
74#define __NR_readdir 89
75#define __NR_mmap 90
76#define __NR_munmap 91
77#define __NR_truncate 92
78#define __NR_ftruncate 93
79#define __NR_fchmod 94
80#define __NR_getpriority 96
81#define __NR_setpriority 97
82#define __NR_statfs 99
83#define __NR_fstatfs 100
84#define __NR_socketcall 102
85#define __NR_syslog 103
86#define __NR_setitimer 104
87#define __NR_getitimer 105
88#define __NR_stat 106
89#define __NR_lstat 107
90#define __NR_fstat 108
91#define __NR_lookup_dcookie 110
92#define __NR_vhangup 111
93#define __NR_idle 112
94#define __NR_wait4 114
95#define __NR_swapoff 115
96#define __NR_sysinfo 116
97#define __NR_ipc 117
98#define __NR_fsync 118
99#define __NR_sigreturn 119
100#define __NR_clone 120
101#define __NR_setdomainname 121
102#define __NR_uname 122
103#define __NR_adjtimex 124
104#define __NR_mprotect 125
105#define __NR_sigprocmask 126
106#define __NR_create_module 127
107#define __NR_init_module 128
108#define __NR_delete_module 129
109#define __NR_get_kernel_syms 130
110#define __NR_quotactl 131
111#define __NR_getpgid 132
112#define __NR_fchdir 133
113#define __NR_bdflush 134
114#define __NR_sysfs 135
115#define __NR_personality 136
116#define __NR_afs_syscall 137 /* Syscall for Andrew File System */
117#define __NR_getdents 141
118#define __NR_flock 143
119#define __NR_msync 144
120#define __NR_readv 145
121#define __NR_writev 146
122#define __NR_getsid 147
123#define __NR_fdatasync 148
124#define __NR__sysctl 149
125#define __NR_mlock 150
126#define __NR_munlock 151
127#define __NR_mlockall 152
128#define __NR_munlockall 153
129#define __NR_sched_setparam 154
130#define __NR_sched_getparam 155
131#define __NR_sched_setscheduler 156
132#define __NR_sched_getscheduler 157
133#define __NR_sched_yield 158
134#define __NR_sched_get_priority_max 159
135#define __NR_sched_get_priority_min 160
136#define __NR_sched_rr_get_interval 161
137#define __NR_nanosleep 162
138#define __NR_mremap 163
139#define __NR_query_module 167
140#define __NR_poll 168
141#define __NR_nfsservctl 169
142#define __NR_prctl 172
143#define __NR_rt_sigreturn 173
144#define __NR_rt_sigaction 174
145#define __NR_rt_sigprocmask 175
146#define __NR_rt_sigpending 176
147#define __NR_rt_sigtimedwait 177
148#define __NR_rt_sigqueueinfo 178
149#define __NR_rt_sigsuspend 179
150#define __NR_pread64 180
151#define __NR_pwrite64 181
152#define __NR_getcwd 183
153#define __NR_capget 184
154#define __NR_capset 185
155#define __NR_sigaltstack 186
156#define __NR_sendfile 187
157#define __NR_getpmsg 188
158#define __NR_putpmsg 189
159#define __NR_vfork 190
160#define __NR_pivot_root 217
161#define __NR_mincore 218
162#define __NR_madvise 219
163#define __NR_getdents64 220
164#define __NR_readahead 222
165#define __NR_setxattr 224
166#define __NR_lsetxattr 225
167#define __NR_fsetxattr 226
168#define __NR_getxattr 227
169#define __NR_lgetxattr 228
170#define __NR_fgetxattr 229
171#define __NR_listxattr 230
172#define __NR_llistxattr 231
173#define __NR_flistxattr 232
174#define __NR_removexattr 233
175#define __NR_lremovexattr 234
176#define __NR_fremovexattr 235
177#define __NR_gettid 236
178#define __NR_tkill 237
179#define __NR_futex 238
180#define __NR_sched_setaffinity 239
181#define __NR_sched_getaffinity 240
182#define __NR_tgkill 241
183/* Number 242 is reserved for tux */
184#define __NR_io_setup 243
185#define __NR_io_destroy 244
186#define __NR_io_getevents 245
187#define __NR_io_submit 246
188#define __NR_io_cancel 247
189#define __NR_exit_group 248
190#define __NR_epoll_create 249
191#define __NR_epoll_ctl 250
192#define __NR_epoll_wait 251
193#define __NR_set_tid_address 252
194#define __NR_fadvise64 253
195#define __NR_timer_create 254
196#define __NR_timer_settime 255
197#define __NR_timer_gettime 256
198#define __NR_timer_getoverrun 257
199#define __NR_timer_delete 258
200#define __NR_clock_settime 259
201#define __NR_clock_gettime 260
202#define __NR_clock_getres 261
203#define __NR_clock_nanosleep 262
204/* Number 263 is reserved for vserver */
205#define __NR_statfs64 265
206#define __NR_fstatfs64 266
207#define __NR_remap_file_pages 267
208#define __NR_mbind 268
209#define __NR_get_mempolicy 269
210#define __NR_set_mempolicy 270
211#define __NR_mq_open 271
212#define __NR_mq_unlink 272
213#define __NR_mq_timedsend 273
214#define __NR_mq_timedreceive 274
215#define __NR_mq_notify 275
216#define __NR_mq_getsetattr 276
217#define __NR_kexec_load 277
218#define __NR_add_key 278
219#define __NR_request_key 279
220#define __NR_keyctl 280
221#define __NR_waitid 281
222#define __NR_ioprio_set 282
223#define __NR_ioprio_get 283
224#define __NR_inotify_init 284
225#define __NR_inotify_add_watch 285
226#define __NR_inotify_rm_watch 286
227#define __NR_migrate_pages 287
228#define __NR_openat 288
229#define __NR_mkdirat 289
230#define __NR_mknodat 290
231#define __NR_fchownat 291
232#define __NR_futimesat 292
233#define __NR_unlinkat 294
234#define __NR_renameat 295
235#define __NR_linkat 296
236#define __NR_symlinkat 297
237#define __NR_readlinkat 298
238#define __NR_fchmodat 299
239#define __NR_faccessat 300
240#define __NR_pselect6 301
241#define __NR_ppoll 302
242#define __NR_unshare 303
243#define __NR_set_robust_list 304
244#define __NR_get_robust_list 305
245#define __NR_splice 306
246#define __NR_sync_file_range 307
247#define __NR_tee 308
248#define __NR_vmsplice 309
249#define __NR_move_pages 310
250#define __NR_getcpu 311
251#define __NR_epoll_pwait 312
252#define __NR_utimes 313
253#define __NR_fallocate 314
254#define __NR_utimensat 315
255#define __NR_signalfd 316
256#define __NR_timerfd 317
257#define __NR_eventfd 318
258#define __NR_timerfd_create 319
259#define __NR_timerfd_settime 320
260#define __NR_timerfd_gettime 321
261#define __NR_signalfd4 322
262#define __NR_eventfd2 323
263#define __NR_inotify_init1 324
264#define __NR_pipe2 325
265#define __NR_dup3 326
266#define __NR_epoll_create1 327
267#define __NR_preadv 328
268#define __NR_pwritev 329
269#define __NR_rt_tgsigqueueinfo 330
270#define __NR_perf_event_open 331
271#define __NR_fanotify_init 332
272#define __NR_fanotify_mark 333
273#define __NR_prlimit64 334
274#define __NR_name_to_handle_at 335
275#define __NR_open_by_handle_at 336
276#define __NR_clock_adjtime 337
277#define __NR_syncfs 338
278#define __NR_setns 339
279#define __NR_process_vm_readv 340
280#define __NR_process_vm_writev 341
281#define __NR_s390_runtime_instr 342
282#define __NR_kcmp 343
283#define __NR_finit_module 344
284#define __NR_sched_setattr 345
285#define __NR_sched_getattr 346
286#define __NR_renameat2 347
287#define __NR_seccomp 348
288#define __NR_getrandom 349
289#define __NR_memfd_create 350
290#define __NR_bpf 351
291#define __NR_s390_pci_mmio_write 352
292#define __NR_s390_pci_mmio_read 353
293#define __NR_execveat 354
294#define __NR_userfaultfd 355
295#define __NR_membarrier 356
296#define __NR_recvmmsg 357
297#define __NR_sendmmsg 358
298#define __NR_socket 359
299#define __NR_socketpair 360
300#define __NR_bind 361
301#define __NR_connect 362
302#define __NR_listen 363
303#define __NR_accept4 364
304#define __NR_getsockopt 365
305#define __NR_setsockopt 366
306#define __NR_getsockname 367
307#define __NR_getpeername 368
308#define __NR_sendto 369
309#define __NR_sendmsg 370
310#define __NR_recvfrom 371
311#define __NR_recvmsg 372
312#define __NR_shutdown 373
313#define __NR_mlock2 374
314#define __NR_copy_file_range 375
315#define __NR_preadv2 376
316#define __NR_pwritev2 377
317#define __NR_s390_guarded_storage 378
318#define __NR_statx 379
319#define __NR_s390_sthyi 380
320#define NR_syscalls 381
321
322/*
323 * There are some system calls that are not present on 64 bit, some
324 * have a different name although they do the same (e.g. __NR_chown32
325 * is __NR_chown on 64 bit).
326 */
327#ifndef __s390x__
328
329#define __NR_time 13
330#define __NR_lchown 16
331#define __NR_setuid 23
332#define __NR_getuid 24
333#define __NR_stime 25
334#define __NR_setgid 46
335#define __NR_getgid 47
336#define __NR_geteuid 49
337#define __NR_getegid 50
338#define __NR_setreuid 70
339#define __NR_setregid 71
340#define __NR_getrlimit 76
341#define __NR_getgroups 80
342#define __NR_setgroups 81
343#define __NR_fchown 95
344#define __NR_ioperm 101
345#define __NR_setfsuid 138
346#define __NR_setfsgid 139
347#define __NR__llseek 140
348#define __NR__newselect 142
349#define __NR_setresuid 164
350#define __NR_getresuid 165
351#define __NR_setresgid 170
352#define __NR_getresgid 171
353#define __NR_chown 182
354#define __NR_ugetrlimit 191 /* SuS compliant getrlimit */
355#define __NR_mmap2 192
356#define __NR_truncate64 193
357#define __NR_ftruncate64 194
358#define __NR_stat64 195
359#define __NR_lstat64 196
360#define __NR_fstat64 197
361#define __NR_lchown32 198
362#define __NR_getuid32 199
363#define __NR_getgid32 200
364#define __NR_geteuid32 201
365#define __NR_getegid32 202
366#define __NR_setreuid32 203
367#define __NR_setregid32 204
368#define __NR_getgroups32 205
369#define __NR_setgroups32 206
370#define __NR_fchown32 207
371#define __NR_setresuid32 208
372#define __NR_getresuid32 209
373#define __NR_setresgid32 210
374#define __NR_getresgid32 211
375#define __NR_chown32 212
376#define __NR_setuid32 213
377#define __NR_setgid32 214
378#define __NR_setfsuid32 215
379#define __NR_setfsgid32 216
380#define __NR_fcntl64 221
381#define __NR_sendfile64 223
382#define __NR_fadvise64_64 264
383#define __NR_fstatat64 293
384
385#else 13#else
386 14#include <asm/unistd_32.h>
387#define __NR_select 142
388#define __NR_getrlimit 191 /* SuS compliant getrlimit */
389#define __NR_lchown 198
390#define __NR_getuid 199
391#define __NR_getgid 200
392#define __NR_geteuid 201
393#define __NR_getegid 202
394#define __NR_setreuid 203
395#define __NR_setregid 204
396#define __NR_getgroups 205
397#define __NR_setgroups 206
398#define __NR_fchown 207
399#define __NR_setresuid 208
400#define __NR_getresuid 209
401#define __NR_setresgid 210
402#define __NR_getresgid 211
403#define __NR_chown 212
404#define __NR_setuid 213
405#define __NR_setgid 214
406#define __NR_setfsuid 215
407#define __NR_setfsgid 216
408#define __NR_newfstatat 293
409
410#endif 15#endif
411 16
412#endif /* _UAPI_ASM_S390_UNISTD_H_ */ 17#endif /* _UAPI_ASM_S390_UNISTD_H_ */
diff --git a/arch/s390/kernel/compat_linux.c b/arch/s390/kernel/compat_linux.c
index 59eea9c65d3e..79b7a3438d54 100644
--- a/arch/s390/kernel/compat_linux.c
+++ b/arch/s390/kernel/compat_linux.c
@@ -110,7 +110,7 @@ COMPAT_SYSCALL_DEFINE2(s390_setregid16, u16, rgid, u16, egid)
110 110
111COMPAT_SYSCALL_DEFINE1(s390_setgid16, u16, gid) 111COMPAT_SYSCALL_DEFINE1(s390_setgid16, u16, gid)
112{ 112{
113 return sys_setgid((gid_t)gid); 113 return sys_setgid(low2highgid(gid));
114} 114}
115 115
116COMPAT_SYSCALL_DEFINE2(s390_setreuid16, u16, ruid, u16, euid) 116COMPAT_SYSCALL_DEFINE2(s390_setreuid16, u16, ruid, u16, euid)
@@ -120,7 +120,7 @@ COMPAT_SYSCALL_DEFINE2(s390_setreuid16, u16, ruid, u16, euid)
120 120
121COMPAT_SYSCALL_DEFINE1(s390_setuid16, u16, uid) 121COMPAT_SYSCALL_DEFINE1(s390_setuid16, u16, uid)
122{ 122{
123 return sys_setuid((uid_t)uid); 123 return sys_setuid(low2highuid(uid));
124} 124}
125 125
126COMPAT_SYSCALL_DEFINE3(s390_setresuid16, u16, ruid, u16, euid, u16, suid) 126COMPAT_SYSCALL_DEFINE3(s390_setresuid16, u16, ruid, u16, euid, u16, suid)
@@ -173,12 +173,12 @@ COMPAT_SYSCALL_DEFINE3(s390_getresgid16, u16 __user *, rgidp,
173 173
174COMPAT_SYSCALL_DEFINE1(s390_setfsuid16, u16, uid) 174COMPAT_SYSCALL_DEFINE1(s390_setfsuid16, u16, uid)
175{ 175{
176 return sys_setfsuid((uid_t)uid); 176 return sys_setfsuid(low2highuid(uid));
177} 177}
178 178
179COMPAT_SYSCALL_DEFINE1(s390_setfsgid16, u16, gid) 179COMPAT_SYSCALL_DEFINE1(s390_setfsgid16, u16, gid)
180{ 180{
181 return sys_setfsgid((gid_t)gid); 181 return sys_setfsgid(low2highgid(gid));
182} 182}
183 183
184static int groups16_to_user(u16 __user *grouplist, struct group_info *group_info) 184static int groups16_to_user(u16 __user *grouplist, struct group_info *group_info)
diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S
index 9e5f6cd8e4c2..6cd444d25545 100644
--- a/arch/s390/kernel/entry.S
+++ b/arch/s390/kernel/entry.S
@@ -1392,7 +1392,7 @@ cleanup_critical:
1392#define SYSCALL(esame,emu) .long esame 1392#define SYSCALL(esame,emu) .long esame
1393 .globl sys_call_table 1393 .globl sys_call_table
1394sys_call_table: 1394sys_call_table:
1395#include "syscalls.S" 1395#include "asm/syscall_table.h"
1396#undef SYSCALL 1396#undef SYSCALL
1397 1397
1398#ifdef CONFIG_COMPAT 1398#ifdef CONFIG_COMPAT
@@ -1400,6 +1400,6 @@ sys_call_table:
1400#define SYSCALL(esame,emu) .long emu 1400#define SYSCALL(esame,emu) .long emu
1401 .globl sys_call_table_emu 1401 .globl sys_call_table_emu
1402sys_call_table_emu: 1402sys_call_table_emu:
1403#include "syscalls.S" 1403#include "asm/syscall_table.h"
1404#undef SYSCALL 1404#undef SYSCALL
1405#endif 1405#endif
diff --git a/arch/s390/kernel/head.S b/arch/s390/kernel/head.S
index b86fa3ee4927..5c42f16a54c4 100644
--- a/arch/s390/kernel/head.S
+++ b/arch/s390/kernel/head.S
@@ -66,7 +66,7 @@ __HEAD
66# subroutine to wait for end I/O 66# subroutine to wait for end I/O
67# 67#
68.Lirqwait: 68.Lirqwait:
69 mvc 0x1f0(16),.Lnewpsw # set up IO interrupt psw 69 mvc __LC_IO_NEW_PSW(16),.Lnewpsw # set up IO interrupt psw
70 lpsw .Lwaitpsw 70 lpsw .Lwaitpsw
71.Lioint: 71.Lioint:
72 br %r14 72 br %r14
@@ -98,7 +98,7 @@ __HEAD
98 bnz .Llderr 98 bnz .Llderr
99.Lwait4irq: 99.Lwait4irq:
100 bas %r14,.Lirqwait 100 bas %r14,.Lirqwait
101 c %r1,0xb8 # compare subchannel number 101 c %r1,__LC_SUBCHANNEL_ID # compare subchannel number
102 bne .Lwait4irq 102 bne .Lwait4irq
103 tsch 0(%r5) 103 tsch 0(%r5)
104 104
@@ -156,9 +156,9 @@ iplstart:
156 .fill 16,4,0x0 156 .fill 16,4,0x0
1570: lmh %r0,%r15,0(%r13) # clear high-order half of gprs 1570: lmh %r0,%r15,0(%r13) # clear high-order half of gprs
158 sam31 # switch to 31 bit addressing mode 158 sam31 # switch to 31 bit addressing mode
159 lh %r1,0xb8 # test if subchannel number 159 lh %r1,__LC_SUBCHANNEL_ID # test if subchannel number
160 bct %r1,.Lnoload # is valid 160 bct %r1,.Lnoload # is valid
161 l %r1,0xb8 # load ipl subchannel number 161 l %r1,__LC_SUBCHANNEL_ID # load ipl subchannel number
162 la %r2,IPL_BS # load start address 162 la %r2,IPL_BS # load start address
163 bas %r14,.Lloader # load rest of ipl image 163 bas %r14,.Lloader # load rest of ipl image
164 l %r12,.Lparm # pointer to parameter area 164 l %r12,.Lparm # pointer to parameter area
@@ -239,7 +239,7 @@ iplstart:
239 bz .Lnoreset 239 bz .Lnoreset
240.Lwaitforirq: 240.Lwaitforirq:
241 bas %r14,.Lirqwait # wait for IO interrupt 241 bas %r14,.Lirqwait # wait for IO interrupt
242 c %r1,0xb8 # compare subchannel number 242 c %r1,__LC_SUBCHANNEL_ID # compare subchannel number
243 bne .Lwaitforirq 243 bne .Lwaitforirq
244 la %r5,.Lirb 244 la %r5,.Lirb
245 tsch 0(%r5) 245 tsch 0(%r5)
diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c
index 8ecb8726ac47..da5cc3b469aa 100644
--- a/arch/s390/kernel/ipl.c
+++ b/arch/s390/kernel/ipl.c
@@ -119,13 +119,9 @@ static char *dump_type_str(enum dump_type type)
119 } 119 }
120} 120}
121 121
122/* 122static u8 ipl_ssid;
123 * Must be in data section since the bss section 123static u16 ipl_devno;
124 * is not cleared when these are accessed. 124u32 ipl_flags;
125 */
126static u8 ipl_ssid __section(.data) = 0;
127static u16 ipl_devno __section(.data) = 0;
128u32 ipl_flags __section(.data) = 0;
129 125
130enum ipl_method { 126enum ipl_method {
131 REIPL_METHOD_CCW_CIO, 127 REIPL_METHOD_CCW_CIO,
@@ -148,7 +144,7 @@ enum dump_method {
148 DUMP_METHOD_FCP_DIAG, 144 DUMP_METHOD_FCP_DIAG,
149}; 145};
150 146
151static int diag308_set_works = 0; 147static int diag308_set_works;
152 148
153static struct ipl_parameter_block ipl_block; 149static struct ipl_parameter_block ipl_block;
154 150
diff --git a/arch/s390/kernel/kprobes.c b/arch/s390/kernel/kprobes.c
index af3722c28fd9..943d13e90c98 100644
--- a/arch/s390/kernel/kprobes.c
+++ b/arch/s390/kernel/kprobes.c
@@ -20,7 +20,6 @@
20#include <linux/ftrace.h> 20#include <linux/ftrace.h>
21#include <asm/set_memory.h> 21#include <asm/set_memory.h>
22#include <asm/sections.h> 22#include <asm/sections.h>
23#include <linux/uaccess.h>
24#include <asm/dis.h> 23#include <asm/dis.h>
25 24
26DEFINE_PER_CPU(struct kprobe *, current_kprobe); 25DEFINE_PER_CPU(struct kprobe *, current_kprobe);
diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S
deleted file mode 100644
index f7fc63385553..000000000000
--- a/arch/s390/kernel/syscalls.S
+++ /dev/null
@@ -1,392 +0,0 @@
1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * definitions for sys_call_table, each line represents an
4 * entry in the table in the form
5 * SYSCALL(64 bit syscall, 31 bit emulated syscall)
6 *
7 * this file is meant to be included from entry.S
8 */
9
10#define NI_SYSCALL SYSCALL(sys_ni_syscall,sys_ni_syscall)
11
12NI_SYSCALL /* 0 */
13SYSCALL(sys_exit,sys_exit)
14SYSCALL(sys_fork,sys_fork)
15SYSCALL(sys_read,compat_sys_s390_read)
16SYSCALL(sys_write,compat_sys_s390_write)
17SYSCALL(sys_open,compat_sys_open) /* 5 */
18SYSCALL(sys_close,sys_close)
19SYSCALL(sys_restart_syscall,sys_restart_syscall)
20SYSCALL(sys_creat,compat_sys_creat)
21SYSCALL(sys_link,compat_sys_link)
22SYSCALL(sys_unlink,compat_sys_unlink) /* 10 */
23SYSCALL(sys_execve,compat_sys_execve)
24SYSCALL(sys_chdir,compat_sys_chdir)
25SYSCALL(sys_ni_syscall,compat_sys_time) /* old time syscall */
26SYSCALL(sys_mknod,compat_sys_mknod)
27SYSCALL(sys_chmod,compat_sys_chmod) /* 15 */
28SYSCALL(sys_ni_syscall,compat_sys_s390_lchown16) /* old lchown16 syscall*/
29NI_SYSCALL /* old break syscall holder */
30NI_SYSCALL /* old stat syscall holder */
31SYSCALL(sys_lseek,compat_sys_lseek)
32SYSCALL(sys_getpid,sys_getpid) /* 20 */
33SYSCALL(sys_mount,compat_sys_mount)
34SYSCALL(sys_oldumount,compat_sys_oldumount)
35SYSCALL(sys_ni_syscall,compat_sys_s390_setuid16) /* old setuid16 syscall*/
36SYSCALL(sys_ni_syscall,compat_sys_s390_getuid16) /* old getuid16 syscall*/
37SYSCALL(sys_ni_syscall,compat_sys_stime) /* 25 old stime syscall */
38SYSCALL(sys_ptrace,compat_sys_ptrace)
39SYSCALL(sys_alarm,sys_alarm)
40NI_SYSCALL /* old fstat syscall */
41SYSCALL(sys_pause,sys_pause)
42SYSCALL(sys_utime,compat_sys_utime) /* 30 */
43NI_SYSCALL /* old stty syscall */
44NI_SYSCALL /* old gtty syscall */
45SYSCALL(sys_access,compat_sys_access)
46SYSCALL(sys_nice,sys_nice)
47NI_SYSCALL /* 35 old ftime syscall */
48SYSCALL(sys_sync,sys_sync)
49SYSCALL(sys_kill,sys_kill)
50SYSCALL(sys_rename,compat_sys_rename)
51SYSCALL(sys_mkdir,compat_sys_mkdir)
52SYSCALL(sys_rmdir,compat_sys_rmdir) /* 40 */
53SYSCALL(sys_dup,sys_dup)
54SYSCALL(sys_pipe,compat_sys_pipe)
55SYSCALL(sys_times,compat_sys_times)
56NI_SYSCALL /* old prof syscall */
57SYSCALL(sys_brk,compat_sys_brk) /* 45 */
58SYSCALL(sys_ni_syscall,compat_sys_s390_setgid16) /* old setgid16 syscall*/
59SYSCALL(sys_ni_syscall,compat_sys_s390_getgid16) /* old getgid16 syscall*/
60SYSCALL(sys_signal,compat_sys_signal)
61SYSCALL(sys_ni_syscall,compat_sys_s390_geteuid16) /* old geteuid16 syscall */
62SYSCALL(sys_ni_syscall,compat_sys_s390_getegid16) /* 50 old getegid16 syscall */
63SYSCALL(sys_acct,compat_sys_acct)
64SYSCALL(sys_umount,compat_sys_umount)
65NI_SYSCALL /* old lock syscall */
66SYSCALL(sys_ioctl,compat_sys_ioctl)
67SYSCALL(sys_fcntl,compat_sys_fcntl) /* 55 */
68NI_SYSCALL /* intel mpx syscall */
69SYSCALL(sys_setpgid,sys_setpgid)
70NI_SYSCALL /* old ulimit syscall */
71NI_SYSCALL /* old uname syscall */
72SYSCALL(sys_umask,sys_umask) /* 60 */
73SYSCALL(sys_chroot,compat_sys_chroot)
74SYSCALL(sys_ustat,compat_sys_ustat)
75SYSCALL(sys_dup2,sys_dup2)
76SYSCALL(sys_getppid,sys_getppid)
77SYSCALL(sys_getpgrp,sys_getpgrp) /* 65 */
78SYSCALL(sys_setsid,sys_setsid)
79SYSCALL(sys_sigaction,compat_sys_sigaction)
80NI_SYSCALL /* old sgetmask syscall*/
81NI_SYSCALL /* old ssetmask syscall*/
82SYSCALL(sys_ni_syscall,compat_sys_s390_setreuid16) /* old setreuid16 syscall */
83SYSCALL(sys_ni_syscall,compat_sys_s390_setregid16) /* old setregid16 syscall */
84SYSCALL(sys_sigsuspend,compat_sys_sigsuspend)
85SYSCALL(sys_sigpending,compat_sys_sigpending)
86SYSCALL(sys_sethostname,compat_sys_sethostname)
87SYSCALL(sys_setrlimit,compat_sys_setrlimit) /* 75 */
88SYSCALL(sys_getrlimit,compat_sys_old_getrlimit)
89SYSCALL(sys_getrusage,compat_sys_getrusage)
90SYSCALL(sys_gettimeofday,compat_sys_gettimeofday)
91SYSCALL(sys_settimeofday,compat_sys_settimeofday)
92SYSCALL(sys_ni_syscall,compat_sys_s390_getgroups16) /* 80 old getgroups16 syscall */
93SYSCALL(sys_ni_syscall,compat_sys_s390_setgroups16) /* old setgroups16 syscall */
94NI_SYSCALL /* old select syscall */
95SYSCALL(sys_symlink,compat_sys_symlink)
96NI_SYSCALL /* old lstat syscall */
97SYSCALL(sys_readlink,compat_sys_readlink) /* 85 */
98SYSCALL(sys_uselib,compat_sys_uselib)
99SYSCALL(sys_swapon,compat_sys_swapon)
100SYSCALL(sys_reboot,compat_sys_reboot)
101SYSCALL(sys_ni_syscall,compat_sys_old_readdir) /* old readdir syscall */
102SYSCALL(sys_old_mmap,compat_sys_s390_old_mmap) /* 90 */
103SYSCALL(sys_munmap,compat_sys_munmap)
104SYSCALL(sys_truncate,compat_sys_truncate)
105SYSCALL(sys_ftruncate,compat_sys_ftruncate)
106SYSCALL(sys_fchmod,sys_fchmod)
107SYSCALL(sys_ni_syscall,compat_sys_s390_fchown16) /* 95 old fchown16 syscall*/
108SYSCALL(sys_getpriority,sys_getpriority)
109SYSCALL(sys_setpriority,sys_setpriority)
110NI_SYSCALL /* old profil syscall */
111SYSCALL(sys_statfs,compat_sys_statfs)
112SYSCALL(sys_fstatfs,compat_sys_fstatfs) /* 100 */
113NI_SYSCALL /* ioperm for i386 */
114SYSCALL(sys_socketcall,compat_sys_socketcall)
115SYSCALL(sys_syslog,compat_sys_syslog)
116SYSCALL(sys_setitimer,compat_sys_setitimer)
117SYSCALL(sys_getitimer,compat_sys_getitimer) /* 105 */
118SYSCALL(sys_newstat,compat_sys_newstat)
119SYSCALL(sys_newlstat,compat_sys_newlstat)
120SYSCALL(sys_newfstat,compat_sys_newfstat)
121NI_SYSCALL /* old uname syscall */
122SYSCALL(sys_lookup_dcookie,compat_sys_lookup_dcookie) /* 110 */
123SYSCALL(sys_vhangup,sys_vhangup)
124NI_SYSCALL /* old "idle" system call */
125NI_SYSCALL /* vm86old for i386 */
126SYSCALL(sys_wait4,compat_sys_wait4)
127SYSCALL(sys_swapoff,compat_sys_swapoff) /* 115 */
128SYSCALL(sys_sysinfo,compat_sys_sysinfo)
129SYSCALL(sys_s390_ipc,compat_sys_s390_ipc)
130SYSCALL(sys_fsync,sys_fsync)
131SYSCALL(sys_sigreturn,compat_sys_sigreturn)
132SYSCALL(sys_clone,compat_sys_clone) /* 120 */
133SYSCALL(sys_setdomainname,compat_sys_setdomainname)
134SYSCALL(sys_newuname,compat_sys_newuname)
135NI_SYSCALL /* modify_ldt for i386 */
136SYSCALL(sys_adjtimex,compat_sys_adjtimex)
137SYSCALL(sys_mprotect,compat_sys_mprotect) /* 125 */
138SYSCALL(sys_sigprocmask,compat_sys_sigprocmask)
139NI_SYSCALL /* old "create module" */
140SYSCALL(sys_init_module,compat_sys_init_module)
141SYSCALL(sys_delete_module,compat_sys_delete_module)
142NI_SYSCALL /* 130: old get_kernel_syms */
143SYSCALL(sys_quotactl,compat_sys_quotactl)
144SYSCALL(sys_getpgid,sys_getpgid)
145SYSCALL(sys_fchdir,sys_fchdir)
146SYSCALL(sys_bdflush,compat_sys_bdflush)
147SYSCALL(sys_sysfs,compat_sys_sysfs) /* 135 */
148SYSCALL(sys_s390_personality,sys_s390_personality)
149NI_SYSCALL /* for afs_syscall */
150SYSCALL(sys_ni_syscall,compat_sys_s390_setfsuid16) /* old setfsuid16 syscall */
151SYSCALL(sys_ni_syscall,compat_sys_s390_setfsgid16) /* old setfsgid16 syscall */
152SYSCALL(sys_llseek,compat_sys_llseek) /* 140 */
153SYSCALL(sys_getdents,compat_sys_getdents)
154SYSCALL(sys_select,compat_sys_select)
155SYSCALL(sys_flock,sys_flock)
156SYSCALL(sys_msync,compat_sys_msync)
157SYSCALL(sys_readv,compat_sys_readv) /* 145 */
158SYSCALL(sys_writev,compat_sys_writev)
159SYSCALL(sys_getsid,sys_getsid)
160SYSCALL(sys_fdatasync,sys_fdatasync)
161SYSCALL(sys_sysctl,compat_sys_sysctl)
162SYSCALL(sys_mlock,compat_sys_mlock) /* 150 */
163SYSCALL(sys_munlock,compat_sys_munlock)
164SYSCALL(sys_mlockall,sys_mlockall)
165SYSCALL(sys_munlockall,sys_munlockall)
166SYSCALL(sys_sched_setparam,compat_sys_sched_setparam)
167SYSCALL(sys_sched_getparam,compat_sys_sched_getparam) /* 155 */
168SYSCALL(sys_sched_setscheduler,compat_sys_sched_setscheduler)
169SYSCALL(sys_sched_getscheduler,sys_sched_getscheduler)
170SYSCALL(sys_sched_yield,sys_sched_yield)
171SYSCALL(sys_sched_get_priority_max,sys_sched_get_priority_max)
172SYSCALL(sys_sched_get_priority_min,sys_sched_get_priority_min) /* 160 */
173SYSCALL(sys_sched_rr_get_interval,compat_sys_sched_rr_get_interval)
174SYSCALL(sys_nanosleep,compat_sys_nanosleep)
175SYSCALL(sys_mremap,compat_sys_mremap)
176SYSCALL(sys_ni_syscall,compat_sys_s390_setresuid16) /* old setresuid16 syscall */
177SYSCALL(sys_ni_syscall,compat_sys_s390_getresuid16) /* 165 old getresuid16 syscall */
178NI_SYSCALL /* for vm86 */
179NI_SYSCALL /* old sys_query_module */
180SYSCALL(sys_poll,compat_sys_poll)
181NI_SYSCALL /* old nfsservctl */
182SYSCALL(sys_ni_syscall,compat_sys_s390_setresgid16) /* 170 old setresgid16 syscall */
183SYSCALL(sys_ni_syscall,compat_sys_s390_getresgid16) /* old getresgid16 syscall */
184SYSCALL(sys_prctl,compat_sys_prctl)
185SYSCALL(sys_rt_sigreturn,compat_sys_rt_sigreturn)
186SYSCALL(sys_rt_sigaction,compat_sys_rt_sigaction)
187SYSCALL(sys_rt_sigprocmask,compat_sys_rt_sigprocmask) /* 175 */
188SYSCALL(sys_rt_sigpending,compat_sys_rt_sigpending)
189SYSCALL(sys_rt_sigtimedwait,compat_sys_rt_sigtimedwait)
190SYSCALL(sys_rt_sigqueueinfo,compat_sys_rt_sigqueueinfo)
191SYSCALL(sys_rt_sigsuspend,compat_sys_rt_sigsuspend)
192SYSCALL(sys_pread64,compat_sys_s390_pread64) /* 180 */
193SYSCALL(sys_pwrite64,compat_sys_s390_pwrite64)
194SYSCALL(sys_ni_syscall,compat_sys_s390_chown16) /* old chown16 syscall */
195SYSCALL(sys_getcwd,compat_sys_getcwd)
196SYSCALL(sys_capget,compat_sys_capget)
197SYSCALL(sys_capset,compat_sys_capset) /* 185 */
198SYSCALL(sys_sigaltstack,compat_sys_sigaltstack)
199SYSCALL(sys_sendfile64,compat_sys_sendfile)
200NI_SYSCALL /* streams1 */
201NI_SYSCALL /* streams2 */
202SYSCALL(sys_vfork,sys_vfork) /* 190 */
203SYSCALL(sys_getrlimit,compat_sys_getrlimit)
204SYSCALL(sys_mmap2,compat_sys_s390_mmap2)
205SYSCALL(sys_ni_syscall,compat_sys_s390_truncate64)
206SYSCALL(sys_ni_syscall,compat_sys_s390_ftruncate64)
207SYSCALL(sys_ni_syscall,compat_sys_s390_stat64) /* 195 */
208SYSCALL(sys_ni_syscall,compat_sys_s390_lstat64)
209SYSCALL(sys_ni_syscall,compat_sys_s390_fstat64)
210SYSCALL(sys_lchown,compat_sys_lchown)
211SYSCALL(sys_getuid,sys_getuid)
212SYSCALL(sys_getgid,sys_getgid) /* 200 */
213SYSCALL(sys_geteuid,sys_geteuid)
214SYSCALL(sys_getegid,sys_getegid)
215SYSCALL(sys_setreuid,sys_setreuid)
216SYSCALL(sys_setregid,sys_setregid)
217SYSCALL(sys_getgroups,compat_sys_getgroups) /* 205 */
218SYSCALL(sys_setgroups,compat_sys_setgroups)
219SYSCALL(sys_fchown,sys_fchown)
220SYSCALL(sys_setresuid,sys_setresuid)
221SYSCALL(sys_getresuid,compat_sys_getresuid)
222SYSCALL(sys_setresgid,sys_setresgid) /* 210 */
223SYSCALL(sys_getresgid,compat_sys_getresgid)
224SYSCALL(sys_chown,compat_sys_chown)
225SYSCALL(sys_setuid,sys_setuid)
226SYSCALL(sys_setgid,sys_setgid)
227SYSCALL(sys_setfsuid,sys_setfsuid) /* 215 */
228SYSCALL(sys_setfsgid,sys_setfsgid)
229SYSCALL(sys_pivot_root,compat_sys_pivot_root)
230SYSCALL(sys_mincore,compat_sys_mincore)
231SYSCALL(sys_madvise,compat_sys_madvise)
232SYSCALL(sys_getdents64,compat_sys_getdents64) /* 220 */
233SYSCALL(sys_ni_syscall,compat_sys_fcntl64)
234SYSCALL(sys_readahead,compat_sys_s390_readahead)
235SYSCALL(sys_ni_syscall,compat_sys_sendfile64)
236SYSCALL(sys_setxattr,compat_sys_setxattr)
237SYSCALL(sys_lsetxattr,compat_sys_lsetxattr) /* 225 */
238SYSCALL(sys_fsetxattr,compat_sys_fsetxattr)
239SYSCALL(sys_getxattr,compat_sys_getxattr)
240SYSCALL(sys_lgetxattr,compat_sys_lgetxattr)
241SYSCALL(sys_fgetxattr,compat_sys_fgetxattr)
242SYSCALL(sys_listxattr,compat_sys_listxattr) /* 230 */
243SYSCALL(sys_llistxattr,compat_sys_llistxattr)
244SYSCALL(sys_flistxattr,compat_sys_flistxattr)
245SYSCALL(sys_removexattr,compat_sys_removexattr)
246SYSCALL(sys_lremovexattr,compat_sys_lremovexattr)
247SYSCALL(sys_fremovexattr,compat_sys_fremovexattr) /* 235 */
248SYSCALL(sys_gettid,sys_gettid)
249SYSCALL(sys_tkill,sys_tkill)
250SYSCALL(sys_futex,compat_sys_futex)
251SYSCALL(sys_sched_setaffinity,compat_sys_sched_setaffinity)
252SYSCALL(sys_sched_getaffinity,compat_sys_sched_getaffinity) /* 240 */
253SYSCALL(sys_tgkill,sys_tgkill)
254NI_SYSCALL /* reserved for TUX */
255SYSCALL(sys_io_setup,compat_sys_io_setup)
256SYSCALL(sys_io_destroy,compat_sys_io_destroy)
257SYSCALL(sys_io_getevents,compat_sys_io_getevents) /* 245 */
258SYSCALL(sys_io_submit,compat_sys_io_submit)
259SYSCALL(sys_io_cancel,compat_sys_io_cancel)
260SYSCALL(sys_exit_group,sys_exit_group)
261SYSCALL(sys_epoll_create,sys_epoll_create)
262SYSCALL(sys_epoll_ctl,compat_sys_epoll_ctl) /* 250 */
263SYSCALL(sys_epoll_wait,compat_sys_epoll_wait)
264SYSCALL(sys_set_tid_address,compat_sys_set_tid_address)
265SYSCALL(sys_fadvise64_64,compat_sys_s390_fadvise64)
266SYSCALL(sys_timer_create,compat_sys_timer_create)
267SYSCALL(sys_timer_settime,compat_sys_timer_settime) /* 255 */
268SYSCALL(sys_timer_gettime,compat_sys_timer_gettime)
269SYSCALL(sys_timer_getoverrun,sys_timer_getoverrun)
270SYSCALL(sys_timer_delete,sys_timer_delete)
271SYSCALL(sys_clock_settime,compat_sys_clock_settime)
272SYSCALL(sys_clock_gettime,compat_sys_clock_gettime) /* 260 */
273SYSCALL(sys_clock_getres,compat_sys_clock_getres)
274SYSCALL(sys_clock_nanosleep,compat_sys_clock_nanosleep)
275NI_SYSCALL /* reserved for vserver */
276SYSCALL(sys_ni_syscall,compat_sys_s390_fadvise64_64)
277SYSCALL(sys_statfs64,compat_sys_statfs64)
278SYSCALL(sys_fstatfs64,compat_sys_fstatfs64)
279SYSCALL(sys_remap_file_pages,compat_sys_remap_file_pages)
280SYSCALL(sys_mbind,compat_sys_mbind)
281SYSCALL(sys_get_mempolicy,compat_sys_get_mempolicy)
282SYSCALL(sys_set_mempolicy,compat_sys_set_mempolicy)
283SYSCALL(sys_mq_open,compat_sys_mq_open)
284SYSCALL(sys_mq_unlink,compat_sys_mq_unlink)
285SYSCALL(sys_mq_timedsend,compat_sys_mq_timedsend)
286SYSCALL(sys_mq_timedreceive,compat_sys_mq_timedreceive)
287SYSCALL(sys_mq_notify,compat_sys_mq_notify) /* 275 */
288SYSCALL(sys_mq_getsetattr,compat_sys_mq_getsetattr)
289SYSCALL(sys_kexec_load,compat_sys_kexec_load)
290SYSCALL(sys_add_key,compat_sys_add_key)
291SYSCALL(sys_request_key,compat_sys_request_key)
292SYSCALL(sys_keyctl,compat_sys_keyctl) /* 280 */
293SYSCALL(sys_waitid,compat_sys_waitid)
294SYSCALL(sys_ioprio_set,sys_ioprio_set)
295SYSCALL(sys_ioprio_get,sys_ioprio_get)
296SYSCALL(sys_inotify_init,sys_inotify_init)
297SYSCALL(sys_inotify_add_watch,compat_sys_inotify_add_watch) /* 285 */
298SYSCALL(sys_inotify_rm_watch,sys_inotify_rm_watch)
299SYSCALL(sys_migrate_pages,compat_sys_migrate_pages)
300SYSCALL(sys_openat,compat_sys_openat)
301SYSCALL(sys_mkdirat,compat_sys_mkdirat)
302SYSCALL(sys_mknodat,compat_sys_mknodat) /* 290 */
303SYSCALL(sys_fchownat,compat_sys_fchownat)
304SYSCALL(sys_futimesat,compat_sys_futimesat)
305SYSCALL(sys_newfstatat,compat_sys_s390_fstatat64)
306SYSCALL(sys_unlinkat,compat_sys_unlinkat)
307SYSCALL(sys_renameat,compat_sys_renameat) /* 295 */
308SYSCALL(sys_linkat,compat_sys_linkat)
309SYSCALL(sys_symlinkat,compat_sys_symlinkat)
310SYSCALL(sys_readlinkat,compat_sys_readlinkat)
311SYSCALL(sys_fchmodat,compat_sys_fchmodat)
312SYSCALL(sys_faccessat,compat_sys_faccessat) /* 300 */
313SYSCALL(sys_pselect6,compat_sys_pselect6)
314SYSCALL(sys_ppoll,compat_sys_ppoll)
315SYSCALL(sys_unshare,compat_sys_unshare)
316SYSCALL(sys_set_robust_list,compat_sys_set_robust_list)
317SYSCALL(sys_get_robust_list,compat_sys_get_robust_list)
318SYSCALL(sys_splice,compat_sys_splice)
319SYSCALL(sys_sync_file_range,compat_sys_s390_sync_file_range)
320SYSCALL(sys_tee,compat_sys_tee)
321SYSCALL(sys_vmsplice,compat_sys_vmsplice)
322SYSCALL(sys_move_pages,compat_sys_move_pages)
323SYSCALL(sys_getcpu,compat_sys_getcpu)
324SYSCALL(sys_epoll_pwait,compat_sys_epoll_pwait)
325SYSCALL(sys_utimes,compat_sys_utimes)
326SYSCALL(sys_fallocate,compat_sys_s390_fallocate)
327SYSCALL(sys_utimensat,compat_sys_utimensat) /* 315 */
328SYSCALL(sys_signalfd,compat_sys_signalfd)
329NI_SYSCALL /* 317 old sys_timer_fd */
330SYSCALL(sys_eventfd,sys_eventfd)
331SYSCALL(sys_timerfd_create,sys_timerfd_create)
332SYSCALL(sys_timerfd_settime,compat_sys_timerfd_settime) /* 320 */
333SYSCALL(sys_timerfd_gettime,compat_sys_timerfd_gettime)
334SYSCALL(sys_signalfd4,compat_sys_signalfd4)
335SYSCALL(sys_eventfd2,sys_eventfd2)
336SYSCALL(sys_inotify_init1,sys_inotify_init1)
337SYSCALL(sys_pipe2,compat_sys_pipe2) /* 325 */
338SYSCALL(sys_dup3,sys_dup3)
339SYSCALL(sys_epoll_create1,sys_epoll_create1)
340SYSCALL(sys_preadv,compat_sys_preadv)
341SYSCALL(sys_pwritev,compat_sys_pwritev)
342SYSCALL(sys_rt_tgsigqueueinfo,compat_sys_rt_tgsigqueueinfo) /* 330 */
343SYSCALL(sys_perf_event_open,compat_sys_perf_event_open)
344SYSCALL(sys_fanotify_init,sys_fanotify_init)
345SYSCALL(sys_fanotify_mark,compat_sys_fanotify_mark)
346SYSCALL(sys_prlimit64,compat_sys_prlimit64)
347SYSCALL(sys_name_to_handle_at,compat_sys_name_to_handle_at) /* 335 */
348SYSCALL(sys_open_by_handle_at,compat_sys_open_by_handle_at)
349SYSCALL(sys_clock_adjtime,compat_sys_clock_adjtime)
350SYSCALL(sys_syncfs,sys_syncfs)
351SYSCALL(sys_setns,sys_setns)
352SYSCALL(sys_process_vm_readv,compat_sys_process_vm_readv) /* 340 */
353SYSCALL(sys_process_vm_writev,compat_sys_process_vm_writev)
354SYSCALL(sys_s390_runtime_instr,sys_s390_runtime_instr)
355SYSCALL(sys_kcmp,compat_sys_kcmp)
356SYSCALL(sys_finit_module,compat_sys_finit_module)
357SYSCALL(sys_sched_setattr,compat_sys_sched_setattr) /* 345 */
358SYSCALL(sys_sched_getattr,compat_sys_sched_getattr)
359SYSCALL(sys_renameat2,compat_sys_renameat2)
360SYSCALL(sys_seccomp,compat_sys_seccomp)
361SYSCALL(sys_getrandom,compat_sys_getrandom)
362SYSCALL(sys_memfd_create,compat_sys_memfd_create) /* 350 */
363SYSCALL(sys_bpf,compat_sys_bpf)
364SYSCALL(sys_s390_pci_mmio_write,compat_sys_s390_pci_mmio_write)
365SYSCALL(sys_s390_pci_mmio_read,compat_sys_s390_pci_mmio_read)
366SYSCALL(sys_execveat,compat_sys_execveat)
367SYSCALL(sys_userfaultfd,sys_userfaultfd) /* 355 */
368SYSCALL(sys_membarrier,sys_membarrier)
369SYSCALL(sys_recvmmsg,compat_sys_recvmmsg)
370SYSCALL(sys_sendmmsg,compat_sys_sendmmsg)
371SYSCALL(sys_socket,sys_socket)
372SYSCALL(sys_socketpair,compat_sys_socketpair) /* 360 */
373SYSCALL(sys_bind,compat_sys_bind)
374SYSCALL(sys_connect,compat_sys_connect)
375SYSCALL(sys_listen,sys_listen)
376SYSCALL(sys_accept4,compat_sys_accept4)
377SYSCALL(sys_getsockopt,compat_sys_getsockopt) /* 365 */
378SYSCALL(sys_setsockopt,compat_sys_setsockopt)
379SYSCALL(sys_getsockname,compat_sys_getsockname)
380SYSCALL(sys_getpeername,compat_sys_getpeername)
381SYSCALL(sys_sendto,compat_sys_sendto)
382SYSCALL(sys_sendmsg,compat_sys_sendmsg) /* 370 */
383SYSCALL(sys_recvfrom,compat_sys_recvfrom)
384SYSCALL(sys_recvmsg,compat_sys_recvmsg)
385SYSCALL(sys_shutdown,sys_shutdown)
386SYSCALL(sys_mlock2,compat_sys_mlock2)
387SYSCALL(sys_copy_file_range,compat_sys_copy_file_range) /* 375 */
388SYSCALL(sys_preadv2,compat_sys_preadv2)
389SYSCALL(sys_pwritev2,compat_sys_pwritev2)
390SYSCALL(sys_s390_guarded_storage,compat_sys_s390_guarded_storage) /* 378 */
391SYSCALL(sys_statx,compat_sys_statx)
392SYSCALL(sys_s390_sthyi,compat_sys_s390_sthyi)
diff --git a/arch/s390/kernel/syscalls/Makefile b/arch/s390/kernel/syscalls/Makefile
new file mode 100644
index 000000000000..8ff96c08955f
--- /dev/null
+++ b/arch/s390/kernel/syscalls/Makefile
@@ -0,0 +1,52 @@
1# SPDX-License-Identifier: GPL-2.0
2
3gen := arch/$(ARCH)/include/generated
4kapi := $(gen)/asm
5uapi := $(gen)/uapi/asm
6
7syscall := $(srctree)/$(src)/syscall.tbl
8systbl := $(srctree)/$(src)/syscalltbl
9
10gen-y := $(kapi)/syscall_table.h
11kapi-hdrs-y := $(kapi)/unistd_nr.h
12uapi-hdrs-y := $(uapi)/unistd_32.h
13uapi-hdrs-y += $(uapi)/unistd_64.h
14
15targets += $(addprefix ../../../,$(gen-y) $(kapi-hdrs-y) $(uapi-hdrs-y))
16
17PHONY += kapi uapi
18
19kapi: $(gen-y) $(kapi-hdrs-y)
20uapi: $(uapi-hdrs-y)
21
22
23# Create output directory if not already present
24_dummy := $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)') \
25 $(shell [ -d '$(kapi)' ] || mkdir -p '$(kapi)')
26
27define filechk_syshdr
28 $(CONFIG_SHELL) '$(systbl)' -H -a $(syshdr_abi_$(basetarget)) -f "$2"
29endef
30
31define filechk_sysnr
32 $(CONFIG_SHELL) '$(systbl)' -N -a $(sysnr_abi_$(basetarget))
33endef
34
35define filechk_syscalls
36 $(CONFIG_SHELL) '$(systbl)' -S
37endef
38
39syshdr_abi_unistd_32 := common,32
40$(uapi)/unistd_32.h: $(syscall) FORCE
41 $(call filechk,syshdr,$@)
42
43syshdr_abi_unistd_64 := common,64
44$(uapi)/unistd_64.h: $(syscall) FORCE
45 $(call filechk,syshdr,$@)
46
47$(kapi)/syscall_table.h: $(syscall) FORCE
48 $(call filechk,syscalls)
49
50sysnr_abi_unistd_nr := common,32,64
51$(kapi)/unistd_nr.h: $(syscall) FORCE
52 $(call filechk,sysnr)
diff --git a/arch/s390/kernel/syscalls/syscall.tbl b/arch/s390/kernel/syscalls/syscall.tbl
new file mode 100644
index 000000000000..b38d48464368
--- /dev/null
+++ b/arch/s390/kernel/syscalls/syscall.tbl
@@ -0,0 +1,390 @@
1# SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
2#
3# System call table for s390
4#
5# Format:
6#
7# <nr> <abi> <syscall> <entry-64bit> <compat-entry>
8#
9# where <abi> can be common, 64, or 32
10
111 common exit sys_exit sys_exit
122 common fork sys_fork sys_fork
133 common read sys_read compat_sys_s390_read
144 common write sys_write compat_sys_s390_write
155 common open sys_open compat_sys_open
166 common close sys_close sys_close
177 common restart_syscall sys_restart_syscall sys_restart_syscall
188 common creat sys_creat compat_sys_creat
199 common link sys_link compat_sys_link
2010 common unlink sys_unlink compat_sys_unlink
2111 common execve sys_execve compat_sys_execve
2212 common chdir sys_chdir compat_sys_chdir
2313 32 time - compat_sys_time
2414 common mknod sys_mknod compat_sys_mknod
2515 common chmod sys_chmod compat_sys_chmod
2616 32 lchown - compat_sys_s390_lchown16
2719 common lseek sys_lseek compat_sys_lseek
2820 common getpid sys_getpid sys_getpid
2921 common mount sys_mount compat_sys_mount
3022 common umount sys_oldumount compat_sys_oldumount
3123 32 setuid - compat_sys_s390_setuid16
3224 32 getuid - compat_sys_s390_getuid16
3325 32 stime - compat_sys_stime
3426 common ptrace sys_ptrace compat_sys_ptrace
3527 common alarm sys_alarm sys_alarm
3629 common pause sys_pause sys_pause
3730 common utime sys_utime compat_sys_utime
3833 common access sys_access compat_sys_access
3934 common nice sys_nice sys_nice
4036 common sync sys_sync sys_sync
4137 common kill sys_kill sys_kill
4238 common rename sys_rename compat_sys_rename
4339 common mkdir sys_mkdir compat_sys_mkdir
4440 common rmdir sys_rmdir compat_sys_rmdir
4541 common dup sys_dup sys_dup
4642 common pipe sys_pipe compat_sys_pipe
4743 common times sys_times compat_sys_times
4845 common brk sys_brk compat_sys_brk
4946 32 setgid - compat_sys_s390_setgid16
5047 32 getgid - compat_sys_s390_getgid16
5148 common signal sys_signal compat_sys_signal
5249 32 geteuid - compat_sys_s390_geteuid16
5350 32 getegid - compat_sys_s390_getegid16
5451 common acct sys_acct compat_sys_acct
5552 common umount2 sys_umount compat_sys_umount
5654 common ioctl sys_ioctl compat_sys_ioctl
5755 common fcntl sys_fcntl compat_sys_fcntl
5857 common setpgid sys_setpgid sys_setpgid
5960 common umask sys_umask sys_umask
6061 common chroot sys_chroot compat_sys_chroot
6162 common ustat sys_ustat compat_sys_ustat
6263 common dup2 sys_dup2 sys_dup2
6364 common getppid sys_getppid sys_getppid
6465 common getpgrp sys_getpgrp sys_getpgrp
6566 common setsid sys_setsid sys_setsid
6667 common sigaction sys_sigaction compat_sys_sigaction
6770 32 setreuid - compat_sys_s390_setreuid16
6871 32 setregid - compat_sys_s390_setregid16
6972 common sigsuspend sys_sigsuspend compat_sys_sigsuspend
7073 common sigpending sys_sigpending compat_sys_sigpending
7174 common sethostname sys_sethostname compat_sys_sethostname
7275 common setrlimit sys_setrlimit compat_sys_setrlimit
7376 32 getrlimit - compat_sys_old_getrlimit
7477 common getrusage sys_getrusage compat_sys_getrusage
7578 common gettimeofday sys_gettimeofday compat_sys_gettimeofday
7679 common settimeofday sys_settimeofday compat_sys_settimeofday
7780 32 getgroups - compat_sys_s390_getgroups16
7881 32 setgroups - compat_sys_s390_setgroups16
7983 common symlink sys_symlink compat_sys_symlink
8085 common readlink sys_readlink compat_sys_readlink
8186 common uselib sys_uselib compat_sys_uselib
8287 common swapon sys_swapon compat_sys_swapon
8388 common reboot sys_reboot compat_sys_reboot
8489 common readdir - compat_sys_old_readdir
8590 common mmap sys_old_mmap compat_sys_s390_old_mmap
8691 common munmap sys_munmap compat_sys_munmap
8792 common truncate sys_truncate compat_sys_truncate
8893 common ftruncate sys_ftruncate compat_sys_ftruncate
8994 common fchmod sys_fchmod sys_fchmod
9095 32 fchown - compat_sys_s390_fchown16
9196 common getpriority sys_getpriority sys_getpriority
9297 common setpriority sys_setpriority sys_setpriority
9399 common statfs sys_statfs compat_sys_statfs
94100 common fstatfs sys_fstatfs compat_sys_fstatfs
95101 32 ioperm - -
96102 common socketcall sys_socketcall compat_sys_socketcall
97103 common syslog sys_syslog compat_sys_syslog
98104 common setitimer sys_setitimer compat_sys_setitimer
99105 common getitimer sys_getitimer compat_sys_getitimer
100106 common stat sys_newstat compat_sys_newstat
101107 common lstat sys_newlstat compat_sys_newlstat
102108 common fstat sys_newfstat compat_sys_newfstat
103110 common lookup_dcookie sys_lookup_dcookie compat_sys_lookup_dcookie
104111 common vhangup sys_vhangup sys_vhangup
105112 common idle - -
106114 common wait4 sys_wait4 compat_sys_wait4
107115 common swapoff sys_swapoff compat_sys_swapoff
108116 common sysinfo sys_sysinfo compat_sys_sysinfo
109117 common ipc sys_s390_ipc compat_sys_s390_ipc
110118 common fsync sys_fsync sys_fsync
111119 common sigreturn sys_sigreturn compat_sys_sigreturn
112120 common clone sys_clone compat_sys_clone
113121 common setdomainname sys_setdomainname compat_sys_setdomainname
114122 common uname sys_newuname compat_sys_newuname
115124 common adjtimex sys_adjtimex compat_sys_adjtimex
116125 common mprotect sys_mprotect compat_sys_mprotect
117126 common sigprocmask sys_sigprocmask compat_sys_sigprocmask
118127 common create_module - -
119128 common init_module sys_init_module compat_sys_init_module
120129 common delete_module sys_delete_module compat_sys_delete_module
121130 common get_kernel_syms - -
122131 common quotactl sys_quotactl compat_sys_quotactl
123132 common getpgid sys_getpgid sys_getpgid
124133 common fchdir sys_fchdir sys_fchdir
125134 common bdflush sys_bdflush compat_sys_bdflush
126135 common sysfs sys_sysfs compat_sys_sysfs
127136 common personality sys_s390_personality sys_s390_personality
128137 common afs_syscall - -
129138 32 setfsuid - compat_sys_s390_setfsuid16
130139 32 setfsgid - compat_sys_s390_setfsgid16
131140 32 _llseek - compat_sys_llseek
132141 common getdents sys_getdents compat_sys_getdents
133142 32 _newselect - compat_sys_select
134142 64 select sys_select -
135143 common flock sys_flock sys_flock
136144 common msync sys_msync compat_sys_msync
137145 common readv sys_readv compat_sys_readv
138146 common writev sys_writev compat_sys_writev
139147 common getsid sys_getsid sys_getsid
140148 common fdatasync sys_fdatasync sys_fdatasync
141149 common _sysctl sys_sysctl compat_sys_sysctl
142150 common mlock sys_mlock compat_sys_mlock
143151 common munlock sys_munlock compat_sys_munlock
144152 common mlockall sys_mlockall sys_mlockall
145153 common munlockall sys_munlockall sys_munlockall
146154 common sched_setparam sys_sched_setparam compat_sys_sched_setparam
147155 common sched_getparam sys_sched_getparam compat_sys_sched_getparam
148156 common sched_setscheduler sys_sched_setscheduler compat_sys_sched_setscheduler
149157 common sched_getscheduler sys_sched_getscheduler sys_sched_getscheduler
150158 common sched_yield sys_sched_yield sys_sched_yield
151159 common sched_get_priority_max sys_sched_get_priority_max sys_sched_get_priority_max
152160 common sched_get_priority_min sys_sched_get_priority_min sys_sched_get_priority_min
153161 common sched_rr_get_interval sys_sched_rr_get_interval compat_sys_sched_rr_get_interval
154162 common nanosleep sys_nanosleep compat_sys_nanosleep
155163 common mremap sys_mremap compat_sys_mremap
156164 32 setresuid - compat_sys_s390_setresuid16
157165 32 getresuid - compat_sys_s390_getresuid16
158167 common query_module - -
159168 common poll sys_poll compat_sys_poll
160169 common nfsservctl - -
161170 32 setresgid - compat_sys_s390_setresgid16
162171 32 getresgid - compat_sys_s390_getresgid16
163172 common prctl sys_prctl compat_sys_prctl
164173 common rt_sigreturn sys_rt_sigreturn compat_sys_rt_sigreturn
165174 common rt_sigaction sys_rt_sigaction compat_sys_rt_sigaction
166175 common rt_sigprocmask sys_rt_sigprocmask compat_sys_rt_sigprocmask
167176 common rt_sigpending sys_rt_sigpending compat_sys_rt_sigpending
168177 common rt_sigtimedwait sys_rt_sigtimedwait compat_sys_rt_sigtimedwait
169178 common rt_sigqueueinfo sys_rt_sigqueueinfo compat_sys_rt_sigqueueinfo
170179 common rt_sigsuspend sys_rt_sigsuspend compat_sys_rt_sigsuspend
171180 common pread64 sys_pread64 compat_sys_s390_pread64
172181 common pwrite64 sys_pwrite64 compat_sys_s390_pwrite64
173182 32 chown - compat_sys_s390_chown16
174183 common getcwd sys_getcwd compat_sys_getcwd
175184 common capget sys_capget compat_sys_capget
176185 common capset sys_capset compat_sys_capset
177186 common sigaltstack sys_sigaltstack compat_sys_sigaltstack
178187 common sendfile sys_sendfile64 compat_sys_sendfile
179188 common getpmsg - -
180189 common putpmsg - -
181190 common vfork sys_vfork sys_vfork
182191 32 ugetrlimit - compat_sys_getrlimit
183191 64 getrlimit sys_getrlimit -
184192 32 mmap2 - compat_sys_s390_mmap2
185193 32 truncate64 - compat_sys_s390_truncate64
186194 32 ftruncate64 - compat_sys_s390_ftruncate64
187195 32 stat64 - compat_sys_s390_stat64
188196 32 lstat64 - compat_sys_s390_lstat64
189197 32 fstat64 - compat_sys_s390_fstat64
190198 32 lchown32 - compat_sys_lchown
191198 64 lchown sys_lchown -
192199 32 getuid32 - sys_getuid
193199 64 getuid sys_getuid -
194200 32 getgid32 - sys_getgid
195200 64 getgid sys_getgid -
196201 32 geteuid32 - sys_geteuid
197201 64 geteuid sys_geteuid -
198202 32 getegid32 - sys_getegid
199202 64 getegid sys_getegid -
200203 32 setreuid32 - sys_setreuid
201203 64 setreuid sys_setreuid -
202204 32 setregid32 - sys_setregid
203204 64 setregid sys_setregid -
204205 32 getgroups32 - compat_sys_getgroups
205205 64 getgroups sys_getgroups -
206206 32 setgroups32 - compat_sys_setgroups
207206 64 setgroups sys_setgroups -
208207 32 fchown32 - sys_fchown
209207 64 fchown sys_fchown -
210208 32 setresuid32 - sys_setresuid
211208 64 setresuid sys_setresuid -
212209 32 getresuid32 - compat_sys_getresuid
213209 64 getresuid sys_getresuid -
214210 32 setresgid32 - sys_setresgid
215210 64 setresgid sys_setresgid -
216211 32 getresgid32 - compat_sys_getresgid
217211 64 getresgid sys_getresgid -
218212 32 chown32 - compat_sys_chown
219212 64 chown sys_chown -
220213 32 setuid32 - sys_setuid
221213 64 setuid sys_setuid -
222214 32 setgid32 - sys_setgid
223214 64 setgid sys_setgid -
224215 32 setfsuid32 - sys_setfsuid
225215 64 setfsuid sys_setfsuid -
226216 32 setfsgid32 - sys_setfsgid
227216 64 setfsgid sys_setfsgid -
228217 common pivot_root sys_pivot_root compat_sys_pivot_root
229218 common mincore sys_mincore compat_sys_mincore
230219 common madvise sys_madvise compat_sys_madvise
231220 common getdents64 sys_getdents64 compat_sys_getdents64
232221 32 fcntl64 - compat_sys_fcntl64
233222 common readahead sys_readahead compat_sys_s390_readahead
234223 32 sendfile64 - compat_sys_sendfile64
235224 common setxattr sys_setxattr compat_sys_setxattr
236225 common lsetxattr sys_lsetxattr compat_sys_lsetxattr
237226 common fsetxattr sys_fsetxattr compat_sys_fsetxattr
238227 common getxattr sys_getxattr compat_sys_getxattr
239228 common lgetxattr sys_lgetxattr compat_sys_lgetxattr
240229 common fgetxattr sys_fgetxattr compat_sys_fgetxattr
241230 common listxattr sys_listxattr compat_sys_listxattr
242231 common llistxattr sys_llistxattr compat_sys_llistxattr
243232 common flistxattr sys_flistxattr compat_sys_flistxattr
244233 common removexattr sys_removexattr compat_sys_removexattr
245234 common lremovexattr sys_lremovexattr compat_sys_lremovexattr
246235 common fremovexattr sys_fremovexattr compat_sys_fremovexattr
247236 common gettid sys_gettid sys_gettid
248237 common tkill sys_tkill sys_tkill
249238 common futex sys_futex compat_sys_futex
250239 common sched_setaffinity sys_sched_setaffinity compat_sys_sched_setaffinity
251240 common sched_getaffinity sys_sched_getaffinity compat_sys_sched_getaffinity
252241 common tgkill sys_tgkill sys_tgkill
253243 common io_setup sys_io_setup compat_sys_io_setup
254244 common io_destroy sys_io_destroy compat_sys_io_destroy
255245 common io_getevents sys_io_getevents compat_sys_io_getevents
256246 common io_submit sys_io_submit compat_sys_io_submit
257247 common io_cancel sys_io_cancel compat_sys_io_cancel
258248 common exit_group sys_exit_group sys_exit_group
259249 common epoll_create sys_epoll_create sys_epoll_create
260250 common epoll_ctl sys_epoll_ctl compat_sys_epoll_ctl
261251 common epoll_wait sys_epoll_wait compat_sys_epoll_wait
262252 common set_tid_address sys_set_tid_address compat_sys_set_tid_address
263253 common fadvise64 sys_fadvise64_64 compat_sys_s390_fadvise64
264254 common timer_create sys_timer_create compat_sys_timer_create
265255 common timer_settime sys_timer_settime compat_sys_timer_settime
266256 common timer_gettime sys_timer_gettime compat_sys_timer_gettime
267257 common timer_getoverrun sys_timer_getoverrun sys_timer_getoverrun
268258 common timer_delete sys_timer_delete sys_timer_delete
269259 common clock_settime sys_clock_settime compat_sys_clock_settime
270260 common clock_gettime sys_clock_gettime compat_sys_clock_gettime
271261 common clock_getres sys_clock_getres compat_sys_clock_getres
272262 common clock_nanosleep sys_clock_nanosleep compat_sys_clock_nanosleep
273264 32 fadvise64_64 - compat_sys_s390_fadvise64_64
274265 common statfs64 sys_statfs64 compat_sys_statfs64
275266 common fstatfs64 sys_fstatfs64 compat_sys_fstatfs64
276267 common remap_file_pages sys_remap_file_pages compat_sys_remap_file_pages
277268 common mbind sys_mbind compat_sys_mbind
278269 common get_mempolicy sys_get_mempolicy compat_sys_get_mempolicy
279270 common set_mempolicy sys_set_mempolicy compat_sys_set_mempolicy
280271 common mq_open sys_mq_open compat_sys_mq_open
281272 common mq_unlink sys_mq_unlink compat_sys_mq_unlink
282273 common mq_timedsend sys_mq_timedsend compat_sys_mq_timedsend
283274 common mq_timedreceive sys_mq_timedreceive compat_sys_mq_timedreceive
284275 common mq_notify sys_mq_notify compat_sys_mq_notify
285276 common mq_getsetattr sys_mq_getsetattr compat_sys_mq_getsetattr
286277 common kexec_load sys_kexec_load compat_sys_kexec_load
287278 common add_key sys_add_key compat_sys_add_key
288279 common request_key sys_request_key compat_sys_request_key
289280 common keyctl sys_keyctl compat_sys_keyctl
290281 common waitid sys_waitid compat_sys_waitid
291282 common ioprio_set sys_ioprio_set sys_ioprio_set
292283 common ioprio_get sys_ioprio_get sys_ioprio_get
293284 common inotify_init sys_inotify_init sys_inotify_init
294285 common inotify_add_watch sys_inotify_add_watch compat_sys_inotify_add_watch
295286 common inotify_rm_watch sys_inotify_rm_watch sys_inotify_rm_watch
296287 common migrate_pages sys_migrate_pages compat_sys_migrate_pages
297288 common openat sys_openat compat_sys_openat
298289 common mkdirat sys_mkdirat compat_sys_mkdirat
299290 common mknodat sys_mknodat compat_sys_mknodat
300291 common fchownat sys_fchownat compat_sys_fchownat
301292 common futimesat sys_futimesat compat_sys_futimesat
302293 32 fstatat64 - compat_sys_s390_fstatat64
303293 64 newfstatat sys_newfstatat -
304294 common unlinkat sys_unlinkat compat_sys_unlinkat
305295 common renameat sys_renameat compat_sys_renameat
306296 common linkat sys_linkat compat_sys_linkat
307297 common symlinkat sys_symlinkat compat_sys_symlinkat
308298 common readlinkat sys_readlinkat compat_sys_readlinkat
309299 common fchmodat sys_fchmodat compat_sys_fchmodat
310300 common faccessat sys_faccessat compat_sys_faccessat
311301 common pselect6 sys_pselect6 compat_sys_pselect6
312302 common ppoll sys_ppoll compat_sys_ppoll
313303 common unshare sys_unshare compat_sys_unshare
314304 common set_robust_list sys_set_robust_list compat_sys_set_robust_list
315305 common get_robust_list sys_get_robust_list compat_sys_get_robust_list
316306 common splice sys_splice compat_sys_splice
317307 common sync_file_range sys_sync_file_range compat_sys_s390_sync_file_range
318308 common tee sys_tee compat_sys_tee
319309 common vmsplice sys_vmsplice compat_sys_vmsplice
320310 common move_pages sys_move_pages compat_sys_move_pages
321311 common getcpu sys_getcpu compat_sys_getcpu
322312 common epoll_pwait sys_epoll_pwait compat_sys_epoll_pwait
323313 common utimes sys_utimes compat_sys_utimes
324314 common fallocate sys_fallocate compat_sys_s390_fallocate
325315 common utimensat sys_utimensat compat_sys_utimensat
326316 common signalfd sys_signalfd compat_sys_signalfd
327317 common timerfd - -
328318 common eventfd sys_eventfd sys_eventfd
329319 common timerfd_create sys_timerfd_create sys_timerfd_create
330320 common timerfd_settime sys_timerfd_settime compat_sys_timerfd_settime
331321 common timerfd_gettime sys_timerfd_gettime compat_sys_timerfd_gettime
332322 common signalfd4 sys_signalfd4 compat_sys_signalfd4
333323 common eventfd2 sys_eventfd2 sys_eventfd2
334324 common inotify_init1 sys_inotify_init1 sys_inotify_init1
335325 common pipe2 sys_pipe2 compat_sys_pipe2
336326 common dup3 sys_dup3 sys_dup3
337327 common epoll_create1 sys_epoll_create1 sys_epoll_create1
338328 common preadv sys_preadv compat_sys_preadv
339329 common pwritev sys_pwritev compat_sys_pwritev
340330 common rt_tgsigqueueinfo sys_rt_tgsigqueueinfo compat_sys_rt_tgsigqueueinfo
341331 common perf_event_open sys_perf_event_open compat_sys_perf_event_open
342332 common fanotify_init sys_fanotify_init sys_fanotify_init
343333 common fanotify_mark sys_fanotify_mark compat_sys_fanotify_mark
344334 common prlimit64 sys_prlimit64 compat_sys_prlimit64
345335 common name_to_handle_at sys_name_to_handle_at compat_sys_name_to_handle_at
346336 common open_by_handle_at sys_open_by_handle_at compat_sys_open_by_handle_at
347337 common clock_adjtime sys_clock_adjtime compat_sys_clock_adjtime
348338 common syncfs sys_syncfs sys_syncfs
349339 common setns sys_setns sys_setns
350340 common process_vm_readv sys_process_vm_readv compat_sys_process_vm_readv
351341 common process_vm_writev sys_process_vm_writev compat_sys_process_vm_writev
352342 common s390_runtime_instr sys_s390_runtime_instr sys_s390_runtime_instr
353343 common kcmp sys_kcmp compat_sys_kcmp
354344 common finit_module sys_finit_module compat_sys_finit_module
355345 common sched_setattr sys_sched_setattr compat_sys_sched_setattr
356346 common sched_getattr sys_sched_getattr compat_sys_sched_getattr
357347 common renameat2 sys_renameat2 compat_sys_renameat2
358348 common seccomp sys_seccomp compat_sys_seccomp
359349 common getrandom sys_getrandom compat_sys_getrandom
360350 common memfd_create sys_memfd_create compat_sys_memfd_create
361351 common bpf sys_bpf compat_sys_bpf
362352 common s390_pci_mmio_write sys_s390_pci_mmio_write compat_sys_s390_pci_mmio_write
363353 common s390_pci_mmio_read sys_s390_pci_mmio_read compat_sys_s390_pci_mmio_read
364354 common execveat sys_execveat compat_sys_execveat
365355 common userfaultfd sys_userfaultfd sys_userfaultfd
366356 common membarrier sys_membarrier sys_membarrier
367357 common recvmmsg sys_recvmmsg compat_sys_recvmmsg
368358 common sendmmsg sys_sendmmsg compat_sys_sendmmsg
369359 common socket sys_socket sys_socket
370360 common socketpair sys_socketpair compat_sys_socketpair
371361 common bind sys_bind compat_sys_bind
372362 common connect sys_connect compat_sys_connect
373363 common listen sys_listen sys_listen
374364 common accept4 sys_accept4 compat_sys_accept4
375365 common getsockopt sys_getsockopt compat_sys_getsockopt
376366 common setsockopt sys_setsockopt compat_sys_setsockopt
377367 common getsockname sys_getsockname compat_sys_getsockname
378368 common getpeername sys_getpeername compat_sys_getpeername
379369 common sendto sys_sendto compat_sys_sendto
380370 common sendmsg sys_sendmsg compat_sys_sendmsg
381371 common recvfrom sys_recvfrom compat_sys_recvfrom
382372 common recvmsg sys_recvmsg compat_sys_recvmsg
383373 common shutdown sys_shutdown sys_shutdown
384374 common mlock2 sys_mlock2 compat_sys_mlock2
385375 common copy_file_range sys_copy_file_range compat_sys_copy_file_range
386376 common preadv2 sys_preadv2 compat_sys_preadv2
387377 common pwritev2 sys_pwritev2 compat_sys_pwritev2
388378 common s390_guarded_storage sys_s390_guarded_storage compat_sys_s390_guarded_storage
389379 common statx sys_statx compat_sys_statx
390380 common s390_sthyi sys_s390_sthyi compat_sys_s390_sthyi
diff --git a/arch/s390/kernel/syscalls/syscalltbl b/arch/s390/kernel/syscalls/syscalltbl
new file mode 100755
index 000000000000..fbac1732f874
--- /dev/null
+++ b/arch/s390/kernel/syscalls/syscalltbl
@@ -0,0 +1,232 @@
1#!/bin/sh
2# SPDX-License-Identifier: GPL-2.0
3#
4# Generate system call table and header files
5#
6# Copyright IBM Corp. 2018
7# Author(s): Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
8
9#
10# File path to the system call table definition.
11# You can set the path with the -i option. If omitted,
12# system call table definitions are read from standard input.
13#
14SYSCALL_TBL=""
15
16
17create_syscall_table_entries()
18{
19 local nr abi name entry64 entry32 _ignore
20 local temp=$(mktemp ${TMPDIR:-/tmp}/syscalltbl-common.XXXXXXXXX)
21
22 (
23 #
24 # Initialize with 0 to create an NI_SYSCALL for 0
25 #
26 local prev_nr=0 prev_32=sys_ni_syscall prev_64=sys_ni_syscall
27 while read nr abi name entry64 entry32 _ignore; do
28 test x$entry32 = x- && entry32=sys_ni_syscall
29 test x$entry64 = x- && entry64=sys_ni_syscall
30
31 if test $prev_nr -eq $nr; then
32 #
33 # Same syscall but different ABI, just update
34 # the respective entry point
35 #
36 case $abi in
37 32)
38 prev_32=$entry32
39 ;;
40 64)
41 prev_64=$entry64
42 ;;
43 esac
44 continue;
45 else
46 printf "%d\t%s\t%s\n" $prev_nr $prev_64 $prev_32
47 fi
48
49 prev_nr=$nr
50 prev_64=$entry64
51 prev_32=$entry32
52 done
53 printf "%d\t%s\t%s\n" $prev_nr $prev_64 $prev_32
54 ) >> $temp
55
56 #
57 # Check for duplicate syscall numbers
58 #
59 if ! cat $temp |cut -f1 |uniq -d 2>&1; then
60 echo "Error: generated system call table contains duplicate entries: $temp" >&2
61 exit 1
62 fi
63
64 #
65 # Generate syscall table
66 #
67 prev_nr=0
68 while read nr entry64 entry32; do
69 while test $prev_nr -lt $((nr - 1)); do
70 printf "NI_SYSCALL\n"
71 prev_nr=$((prev_nr + 1))
72 done
73 if test x$entry64 = xsys_ni_syscall &&
74 test x$entry32 = xsys_ni_syscall; then
75 printf "NI_SYSCALL\n"
76 else
77 printf "SYSCALL(%s,%s)\n" $entry64 $entry32
78 fi
79 prev_nr=$nr
80 done < $temp
81 rm $temp
82}
83
84generate_syscall_table()
85{
86 cat <<-EoHEADER
87 /* SPDX-License-Identifier: GPL-2.0 */
88 /*
89 * Definitions for sys_call_table, each line represents an
90 * entry in the table in the form
91 * SYSCALL(64 bit syscall, 31 bit emulated syscall)
92 *
93 * This file is meant to be included from entry.S.
94 */
95
96 #define NI_SYSCALL SYSCALL(sys_ni_syscall,sys_ni_syscall)
97
98EoHEADER
99 grep -Ev '^(#|[[:blank:]]*$)' $SYSCALL_TBL \
100 |sort -k1 -n \
101 |create_syscall_table_entries
102}
103
104create_header_defines()
105{
106 local nr abi name _ignore
107
108 while read nr abi name _ignore; do
109 printf "#define __NR_%s %d\n" $name $nr
110 done
111}
112
113normalize_fileguard()
114{
115 local fileguard="$1"
116
117 echo "$1" |tr '[[:lower:]]' '[[:upper:]]' \
118 |sed -e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'
119}
120
121generate_syscall_header()
122{
123 local abis=$(echo "($1)" | tr ',' '|')
124 local filename="$2"
125 local fileguard suffix
126
127 if test "$filename"; then
128 fileguard=$(normalize_fileguard "__UAPI_ASM_S390_$2")
129 else
130 case "$abis" in
131 *64*) suffix=64 ;;
132 *32*) suffix=32 ;;
133 esac
134 fileguard=$(normalize_fileguard "__UAPI_ASM_S390_SYSCALLS_$suffix")
135 fi
136
137 cat <<-EoHEADER
138 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
139 #ifndef ${fileguard}
140 #define ${fileguard}
141
142EoHEADER
143
144 grep -E "^[[:digit:]]+[[:space:]]+${abis}" $SYSCALL_TBL \
145 |sort -k1 -n \
146 |create_header_defines
147
148 cat <<-EoFOOTER
149
150 #endif /* ${fileguard} */
151EoFOOTER
152}
153
154__max_syscall_nr()
155{
156 local abis=$(echo "($1)" | tr ',' '|')
157
158 grep -E "^[[:digit:]]+[[:space:]]+${abis}" $SYSCALL_TBL \
159 |sed -ne 's/^\([[:digit:]]*\)[[:space:]].*/\1/p' \
160 |sort -n \
161 |tail -1
162}
163
164
165generate_syscall_nr()
166{
167 local abis="$1"
168 local max_syscall_nr num_syscalls
169
170 max_syscall_nr=$(__max_syscall_nr "$abis")
171 num_syscalls=$((max_syscall_nr + 1))
172
173 cat <<-EoHEADER
174 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
175 #ifndef __ASM_S390_SYSCALLS_NR
176 #define __ASM_S390_SYSCALLS_NR
177
178 #define NR_syscalls ${num_syscalls}
179
180 #endif /* __ASM_S390_SYSCALLS_NR */
181EoHEADER
182}
183
184
185#
186# Parse command line arguments
187#
188do_syscall_header=""
189do_syscall_table=""
190do_syscall_nr=""
191output_file=""
192abi_list="common,64"
193filename=""
194while getopts ":HNSXi:a:f:" arg; do
195 case $arg in
196 a)
197 abi_list="$OPTARG"
198 ;;
199 i)
200 SYSCALL_TBL="$OPTARG"
201 ;;
202 f)
203 filename=${OPTARG##*/}
204 ;;
205 H)
206 do_syscall_header=1
207 ;;
208 N)
209 do_syscall_nr=1
210 ;;
211 S)
212 do_syscall_table=1
213 ;;
214 X)
215 set -x
216 ;;
217 :)
218 echo "Missing argument for -$OPTARG" >&2
219 exit 1
220 ;;
221 \?)
222 echo "Invalid option specified" >&2
223 exit 1
224 ;;
225 esac
226done
227
228test "$do_syscall_header" && generate_syscall_header "$abi_list" "$filename"
229test "$do_syscall_table" && generate_syscall_table
230test "$do_syscall_nr" && generate_syscall_nr "$abi_list"
231
232exit 0
diff --git a/arch/s390/kernel/vdso32/Makefile b/arch/s390/kernel/vdso32/Makefile
index 308564b9bf68..c5c856f320bc 100644
--- a/arch/s390/kernel/vdso32/Makefile
+++ b/arch/s390/kernel/vdso32/Makefile
@@ -10,6 +10,9 @@ obj-vdso32 = gettimeofday.o clock_getres.o clock_gettime.o note.o getcpu.o
10targets := $(obj-vdso32) vdso32.so vdso32.so.dbg 10targets := $(obj-vdso32) vdso32.so vdso32.so.dbg
11obj-vdso32 := $(addprefix $(obj)/, $(obj-vdso32)) 11obj-vdso32 := $(addprefix $(obj)/, $(obj-vdso32))
12 12
13KBUILD_AFLAGS += -DBUILD_VDSO
14KBUILD_CFLAGS += -DBUILD_VDSO
15
13KBUILD_AFLAGS_31 := $(filter-out -m64,$(KBUILD_AFLAGS)) 16KBUILD_AFLAGS_31 := $(filter-out -m64,$(KBUILD_AFLAGS))
14KBUILD_AFLAGS_31 += -m31 -s 17KBUILD_AFLAGS_31 += -m31 -s
15 18
diff --git a/arch/s390/kernel/vdso32/clock_getres.S b/arch/s390/kernel/vdso32/clock_getres.S
index f61df5253c23..eaf9cf1417f6 100644
--- a/arch/s390/kernel/vdso32/clock_getres.S
+++ b/arch/s390/kernel/vdso32/clock_getres.S
@@ -9,13 +9,14 @@
9#include <asm/vdso.h> 9#include <asm/vdso.h>
10#include <asm/asm-offsets.h> 10#include <asm/asm-offsets.h>
11#include <asm/unistd.h> 11#include <asm/unistd.h>
12#include <asm/dwarf.h>
12 13
13 .text 14 .text
14 .align 4 15 .align 4
15 .globl __kernel_clock_getres 16 .globl __kernel_clock_getres
16 .type __kernel_clock_getres,@function 17 .type __kernel_clock_getres,@function
17__kernel_clock_getres: 18__kernel_clock_getres:
18 .cfi_startproc 19 CFI_STARTPROC
19 basr %r1,0 20 basr %r1,0
20 la %r1,4f-.(%r1) 21 la %r1,4f-.(%r1)
21 chi %r2,__CLOCK_REALTIME 22 chi %r2,__CLOCK_REALTIME
@@ -37,7 +38,7 @@ __kernel_clock_getres:
373: lhi %r1,__NR_clock_getres /* fallback to svc */ 383: lhi %r1,__NR_clock_getres /* fallback to svc */
38 svc 0 39 svc 0
39 br %r14 40 br %r14
41 CFI_ENDPROC
404: .long __CLOCK_REALTIME_RES 424: .long __CLOCK_REALTIME_RES
415: .long __CLOCK_COARSE_RES 435: .long __CLOCK_COARSE_RES
42 .cfi_endproc
43 .size __kernel_clock_getres,.-__kernel_clock_getres 44 .size __kernel_clock_getres,.-__kernel_clock_getres
diff --git a/arch/s390/kernel/vdso32/clock_gettime.S b/arch/s390/kernel/vdso32/clock_gettime.S
index 2d6ec3abe095..a9418bf975db 100644
--- a/arch/s390/kernel/vdso32/clock_gettime.S
+++ b/arch/s390/kernel/vdso32/clock_gettime.S
@@ -9,14 +9,17 @@
9#include <asm/vdso.h> 9#include <asm/vdso.h>
10#include <asm/asm-offsets.h> 10#include <asm/asm-offsets.h>
11#include <asm/unistd.h> 11#include <asm/unistd.h>
12#include <asm/dwarf.h>
12 13
13 .text 14 .text
14 .align 4 15 .align 4
15 .globl __kernel_clock_gettime 16 .globl __kernel_clock_gettime
16 .type __kernel_clock_gettime,@function 17 .type __kernel_clock_gettime,@function
17__kernel_clock_gettime: 18__kernel_clock_gettime:
18 .cfi_startproc 19 CFI_STARTPROC
19 ahi %r15,-16 20 ahi %r15,-16
21 CFI_DEF_CFA_OFFSET 176
22 CFI_VAL_OFFSET 15, -160
20 basr %r5,0 23 basr %r5,0
210: al %r5,21f-0b(%r5) /* get &_vdso_data */ 240: al %r5,21f-0b(%r5) /* get &_vdso_data */
22 chi %r2,__CLOCK_REALTIME_COARSE 25 chi %r2,__CLOCK_REALTIME_COARSE
@@ -69,9 +72,13 @@ __kernel_clock_gettime:
69 st %r1,4(%r3) /* store tp->tv_nsec */ 72 st %r1,4(%r3) /* store tp->tv_nsec */
70 lhi %r2,0 73 lhi %r2,0
71 ahi %r15,16 74 ahi %r15,16
75 CFI_DEF_CFA_OFFSET 160
76 CFI_RESTORE 15
72 br %r14 77 br %r14
73 78
74 /* CLOCK_MONOTONIC_COARSE */ 79 /* CLOCK_MONOTONIC_COARSE */
80 CFI_DEF_CFA_OFFSET 176
81 CFI_VAL_OFFSET 15, -160
759: l %r4,__VDSO_UPD_COUNT+4(%r5) /* load update counter */ 829: l %r4,__VDSO_UPD_COUNT+4(%r5) /* load update counter */
76 tml %r4,0x0001 /* pending update ? loop */ 83 tml %r4,0x0001 /* pending update ? loop */
77 jnz 9b 84 jnz 9b
@@ -151,15 +158,21 @@ __kernel_clock_gettime:
151 st %r1,4(%r3) /* store tp->tv_nsec */ 158 st %r1,4(%r3) /* store tp->tv_nsec */
152 lhi %r2,0 159 lhi %r2,0
153 ahi %r15,16 160 ahi %r15,16
161 CFI_DEF_CFA_OFFSET 160
162 CFI_RESTORE 15
154 br %r14 163 br %r14
155 164
156 /* Fallback to system call */ 165 /* Fallback to system call */
166 CFI_DEF_CFA_OFFSET 176
167 CFI_VAL_OFFSET 15, -160
15719: lhi %r1,__NR_clock_gettime 16819: lhi %r1,__NR_clock_gettime
158 svc 0 169 svc 0
159 ahi %r15,16 170 ahi %r15,16
171 CFI_DEF_CFA_OFFSET 160
172 CFI_RESTORE 15
160 br %r14 173 br %r14
174 CFI_ENDPROC
161 175
16220: .long 1000000000 17620: .long 1000000000
16321: .long _vdso_data - 0b 17721: .long _vdso_data - 0b
164 .cfi_endproc
165 .size __kernel_clock_gettime,.-__kernel_clock_gettime 178 .size __kernel_clock_gettime,.-__kernel_clock_gettime
diff --git a/arch/s390/kernel/vdso32/getcpu.S b/arch/s390/kernel/vdso32/getcpu.S
index 5477a2c112fb..25515f3fbcea 100644
--- a/arch/s390/kernel/vdso32/getcpu.S
+++ b/arch/s390/kernel/vdso32/getcpu.S
@@ -8,13 +8,14 @@
8 */ 8 */
9#include <asm/vdso.h> 9#include <asm/vdso.h>
10#include <asm/asm-offsets.h> 10#include <asm/asm-offsets.h>
11#include <asm/dwarf.h>
11 12
12 .text 13 .text
13 .align 4 14 .align 4
14 .globl __kernel_getcpu 15 .globl __kernel_getcpu
15 .type __kernel_getcpu,@function 16 .type __kernel_getcpu,@function
16__kernel_getcpu: 17__kernel_getcpu:
17 .cfi_startproc 18 CFI_STARTPROC
18 la %r4,0 19 la %r4,0
19 sacf 256 20 sacf 256
20 l %r5,__VDSO_CPU_NR(%r4) 21 l %r5,__VDSO_CPU_NR(%r4)
@@ -28,5 +29,5 @@ __kernel_getcpu:
28 st %r4,0(%r3) 29 st %r4,0(%r3)
293: lhi %r2,0 303: lhi %r2,0
30 br %r14 31 br %r14
31 .cfi_endproc 32 CFI_ENDPROC
32 .size __kernel_getcpu,.-__kernel_getcpu 33 .size __kernel_getcpu,.-__kernel_getcpu
diff --git a/arch/s390/kernel/vdso32/gettimeofday.S b/arch/s390/kernel/vdso32/gettimeofday.S
index aa8bf13a2edb..3c0db0fa6ad9 100644
--- a/arch/s390/kernel/vdso32/gettimeofday.S
+++ b/arch/s390/kernel/vdso32/gettimeofday.S
@@ -9,14 +9,17 @@
9#include <asm/vdso.h> 9#include <asm/vdso.h>
10#include <asm/asm-offsets.h> 10#include <asm/asm-offsets.h>
11#include <asm/unistd.h> 11#include <asm/unistd.h>
12#include <asm/dwarf.h>
12 13
13 .text 14 .text
14 .align 4 15 .align 4
15 .globl __kernel_gettimeofday 16 .globl __kernel_gettimeofday
16 .type __kernel_gettimeofday,@function 17 .type __kernel_gettimeofday,@function
17__kernel_gettimeofday: 18__kernel_gettimeofday:
18 .cfi_startproc 19 CFI_STARTPROC
19 ahi %r15,-16 20 ahi %r15,-16
21 CFI_ADJUST_CFA_OFFSET 16
22 CFI_VAL_OFFSET 15, -160
20 basr %r5,0 23 basr %r5,0
210: al %r5,13f-0b(%r5) /* get &_vdso_data */ 240: al %r5,13f-0b(%r5) /* get &_vdso_data */
221: ltr %r3,%r3 /* check if tz is NULL */ 251: ltr %r3,%r3 /* check if tz is NULL */
@@ -89,9 +92,11 @@ __kernel_gettimeofday:
89 st %r0,4(%r2) /* store tv->tv_usec */ 92 st %r0,4(%r2) /* store tv->tv_usec */
9010: slr %r2,%r2 9310: slr %r2,%r2
91 ahi %r15,16 94 ahi %r15,16
95 CFI_ADJUST_CFA_OFFSET -16
96 CFI_RESTORE 15
92 br %r14 97 br %r14
98 CFI_ENDPROC
9311: .long 1000000000 9911: .long 1000000000
9412: .long 274877907 10012: .long 274877907
9513: .long _vdso_data - 0b 10113: .long _vdso_data - 0b
96 .cfi_endproc
97 .size __kernel_gettimeofday,.-__kernel_gettimeofday 102 .size __kernel_gettimeofday,.-__kernel_gettimeofday
diff --git a/arch/s390/kernel/vdso64/Makefile b/arch/s390/kernel/vdso64/Makefile
index f81ae7998883..15b1ceafc4c1 100644
--- a/arch/s390/kernel/vdso64/Makefile
+++ b/arch/s390/kernel/vdso64/Makefile
@@ -10,6 +10,9 @@ obj-vdso64 = gettimeofday.o clock_getres.o clock_gettime.o note.o getcpu.o
10targets := $(obj-vdso64) vdso64.so vdso64.so.dbg 10targets := $(obj-vdso64) vdso64.so vdso64.so.dbg
11obj-vdso64 := $(addprefix $(obj)/, $(obj-vdso64)) 11obj-vdso64 := $(addprefix $(obj)/, $(obj-vdso64))
12 12
13KBUILD_AFLAGS += -DBUILD_VDSO
14KBUILD_CFLAGS += -DBUILD_VDSO
15
13KBUILD_AFLAGS_64 := $(filter-out -m64,$(KBUILD_AFLAGS)) 16KBUILD_AFLAGS_64 := $(filter-out -m64,$(KBUILD_AFLAGS))
14KBUILD_AFLAGS_64 += -m64 -s 17KBUILD_AFLAGS_64 += -m64 -s
15 18
diff --git a/arch/s390/kernel/vdso64/clock_getres.S b/arch/s390/kernel/vdso64/clock_getres.S
index faf5213b15df..081435398e0a 100644
--- a/arch/s390/kernel/vdso64/clock_getres.S
+++ b/arch/s390/kernel/vdso64/clock_getres.S
@@ -9,13 +9,14 @@
9#include <asm/vdso.h> 9#include <asm/vdso.h>
10#include <asm/asm-offsets.h> 10#include <asm/asm-offsets.h>
11#include <asm/unistd.h> 11#include <asm/unistd.h>
12#include <asm/dwarf.h>
12 13
13 .text 14 .text
14 .align 4 15 .align 4
15 .globl __kernel_clock_getres 16 .globl __kernel_clock_getres
16 .type __kernel_clock_getres,@function 17 .type __kernel_clock_getres,@function
17__kernel_clock_getres: 18__kernel_clock_getres:
18 .cfi_startproc 19 CFI_STARTPROC
19 larl %r1,4f 20 larl %r1,4f
20 cghi %r2,__CLOCK_REALTIME_COARSE 21 cghi %r2,__CLOCK_REALTIME_COARSE
21 je 0f 22 je 0f
@@ -43,7 +44,7 @@ __kernel_clock_getres:
432: lghi %r1,__NR_clock_getres /* fallback to svc */ 442: lghi %r1,__NR_clock_getres /* fallback to svc */
44 svc 0 45 svc 0
45 br %r14 46 br %r14
47 CFI_ENDPROC
463: .quad __CLOCK_REALTIME_RES 483: .quad __CLOCK_REALTIME_RES
474: .quad __CLOCK_COARSE_RES 494: .quad __CLOCK_COARSE_RES
48 .cfi_endproc
49 .size __kernel_clock_getres,.-__kernel_clock_getres 50 .size __kernel_clock_getres,.-__kernel_clock_getres
diff --git a/arch/s390/kernel/vdso64/clock_gettime.S b/arch/s390/kernel/vdso64/clock_gettime.S
index 6046b3bfca46..fac3ab5ec83a 100644
--- a/arch/s390/kernel/vdso64/clock_gettime.S
+++ b/arch/s390/kernel/vdso64/clock_gettime.S
@@ -9,14 +9,17 @@
9#include <asm/vdso.h> 9#include <asm/vdso.h>
10#include <asm/asm-offsets.h> 10#include <asm/asm-offsets.h>
11#include <asm/unistd.h> 11#include <asm/unistd.h>
12#include <asm/dwarf.h>
12 13
13 .text 14 .text
14 .align 4 15 .align 4
15 .globl __kernel_clock_gettime 16 .globl __kernel_clock_gettime
16 .type __kernel_clock_gettime,@function 17 .type __kernel_clock_gettime,@function
17__kernel_clock_gettime: 18__kernel_clock_gettime:
18 .cfi_startproc 19 CFI_STARTPROC
19 aghi %r15,-16 20 aghi %r15,-16
21 CFI_DEF_CFA_OFFSET 176
22 CFI_VAL_OFFSET 15, -160
20 larl %r5,_vdso_data 23 larl %r5,_vdso_data
21 cghi %r2,__CLOCK_REALTIME_COARSE 24 cghi %r2,__CLOCK_REALTIME_COARSE
22 je 4f 25 je 4f
@@ -53,9 +56,13 @@ __kernel_clock_gettime:
53 stg %r1,8(%r3) /* store tp->tv_nsec */ 56 stg %r1,8(%r3) /* store tp->tv_nsec */
54 lghi %r2,0 57 lghi %r2,0
55 aghi %r15,16 58 aghi %r15,16
59 CFI_DEF_CFA_OFFSET 160
60 CFI_RESTORE 15
56 br %r14 61 br %r14
57 62
58 /* CLOCK_MONOTONIC_COARSE */ 63 /* CLOCK_MONOTONIC_COARSE */
64 CFI_DEF_CFA_OFFSET 176
65 CFI_VAL_OFFSET 15, -160
593: lg %r4,__VDSO_UPD_COUNT(%r5) /* load update counter */ 663: lg %r4,__VDSO_UPD_COUNT(%r5) /* load update counter */
60 tmll %r4,0x0001 /* pending update ? loop */ 67 tmll %r4,0x0001 /* pending update ? loop */
61 jnz 3b 68 jnz 3b
@@ -108,9 +115,13 @@ __kernel_clock_gettime:
108 stg %r1,8(%r3) /* store tp->tv_nsec */ 115 stg %r1,8(%r3) /* store tp->tv_nsec */
109 lghi %r2,0 116 lghi %r2,0
110 aghi %r15,16 117 aghi %r15,16
118 CFI_DEF_CFA_OFFSET 160
119 CFI_RESTORE 15
111 br %r14 120 br %r14
112 121
113 /* CPUCLOCK_VIRT for this thread */ 122 /* CPUCLOCK_VIRT for this thread */
123 CFI_DEF_CFA_OFFSET 176
124 CFI_VAL_OFFSET 15, -160
1149: lghi %r4,0 1259: lghi %r4,0
115 icm %r0,15,__VDSO_ECTG_OK(%r5) 126 icm %r0,15,__VDSO_ECTG_OK(%r5)
116 jz 12f 127 jz 12f
@@ -131,15 +142,21 @@ __kernel_clock_gettime:
131 stg %r4,8(%r3) 142 stg %r4,8(%r3)
132 lghi %r2,0 143 lghi %r2,0
133 aghi %r15,16 144 aghi %r15,16
145 CFI_DEF_CFA_OFFSET 160
146 CFI_RESTORE 15
134 br %r14 147 br %r14
135 148
136 /* Fallback to system call */ 149 /* Fallback to system call */
150 CFI_DEF_CFA_OFFSET 176
151 CFI_VAL_OFFSET 15, -160
13712: lghi %r1,__NR_clock_gettime 15212: lghi %r1,__NR_clock_gettime
138 svc 0 153 svc 0
139 aghi %r15,16 154 aghi %r15,16
155 CFI_DEF_CFA_OFFSET 160
156 CFI_RESTORE 15
140 br %r14 157 br %r14
158 CFI_ENDPROC
141 159
14213: .quad 1000000000 16013: .quad 1000000000
14314: .quad 19342813113834067 16114: .quad 19342813113834067
144 .cfi_endproc
145 .size __kernel_clock_gettime,.-__kernel_clock_gettime 162 .size __kernel_clock_gettime,.-__kernel_clock_gettime
diff --git a/arch/s390/kernel/vdso64/getcpu.S b/arch/s390/kernel/vdso64/getcpu.S
index e9c34364d97b..2446e9dac8ab 100644
--- a/arch/s390/kernel/vdso64/getcpu.S
+++ b/arch/s390/kernel/vdso64/getcpu.S
@@ -8,13 +8,14 @@
8 */ 8 */
9#include <asm/vdso.h> 9#include <asm/vdso.h>
10#include <asm/asm-offsets.h> 10#include <asm/asm-offsets.h>
11#include <asm/dwarf.h>
11 12
12 .text 13 .text
13 .align 4 14 .align 4
14 .globl __kernel_getcpu 15 .globl __kernel_getcpu
15 .type __kernel_getcpu,@function 16 .type __kernel_getcpu,@function
16__kernel_getcpu: 17__kernel_getcpu:
17 .cfi_startproc 18 CFI_STARTPROC
18 la %r4,0 19 la %r4,0
19 sacf 256 20 sacf 256
20 l %r5,__VDSO_CPU_NR(%r4) 21 l %r5,__VDSO_CPU_NR(%r4)
@@ -28,5 +29,5 @@ __kernel_getcpu:
28 st %r4,0(%r3) 29 st %r4,0(%r3)
293: lghi %r2,0 303: lghi %r2,0
30 br %r14 31 br %r14
31 .cfi_endproc 32 CFI_ENDPROC
32 .size __kernel_getcpu,.-__kernel_getcpu 33 .size __kernel_getcpu,.-__kernel_getcpu
diff --git a/arch/s390/kernel/vdso64/gettimeofday.S b/arch/s390/kernel/vdso64/gettimeofday.S
index cc9dbc27da6f..6e1f0b421695 100644
--- a/arch/s390/kernel/vdso64/gettimeofday.S
+++ b/arch/s390/kernel/vdso64/gettimeofday.S
@@ -9,14 +9,17 @@
9#include <asm/vdso.h> 9#include <asm/vdso.h>
10#include <asm/asm-offsets.h> 10#include <asm/asm-offsets.h>
11#include <asm/unistd.h> 11#include <asm/unistd.h>
12#include <asm/dwarf.h>
12 13
13 .text 14 .text
14 .align 4 15 .align 4
15 .globl __kernel_gettimeofday 16 .globl __kernel_gettimeofday
16 .type __kernel_gettimeofday,@function 17 .type __kernel_gettimeofday,@function
17__kernel_gettimeofday: 18__kernel_gettimeofday:
18 .cfi_startproc 19 CFI_STARTPROC
19 aghi %r15,-16 20 aghi %r15,-16
21 CFI_ADJUST_CFA_OFFSET 16
22 CFI_VAL_OFFSET 15, -160
20 larl %r5,_vdso_data 23 larl %r5,_vdso_data
210: ltgr %r3,%r3 /* check if tz is NULL */ 240: ltgr %r3,%r3 /* check if tz is NULL */
22 je 1f 25 je 1f
@@ -58,8 +61,10 @@ __kernel_gettimeofday:
58 stg %r0,8(%r2) /* store tv->tv_usec */ 61 stg %r0,8(%r2) /* store tv->tv_usec */
594: lghi %r2,0 624: lghi %r2,0
60 aghi %r15,16 63 aghi %r15,16
64 CFI_ADJUST_CFA_OFFSET -16
65 CFI_RESTORE 15
61 br %r14 66 br %r14
67 CFI_ENDPROC
625: .quad 1000000000 685: .quad 1000000000
63 .long 274877907 69 .long 274877907
64 .cfi_endproc
65 .size __kernel_gettimeofday,.-__kernel_gettimeofday 70 .size __kernel_gettimeofday,.-__kernel_gettimeofday
diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S
index a049ff005f03..608cf2987d19 100644
--- a/arch/s390/kernel/vmlinux.lds.S
+++ b/arch/s390/kernel/vmlinux.lds.S
@@ -141,4 +141,7 @@ SECTIONS
141 141
142 /* Sections to be discarded */ 142 /* Sections to be discarded */
143 DISCARDS 143 DISCARDS
144 /DISCARD/ : {
145 *(.eh_frame)
146 }
144} 147}
diff --git a/arch/s390/tools/.gitignore b/arch/s390/tools/.gitignore
index 72a4b2cf1365..71bd6f8eebaf 100644
--- a/arch/s390/tools/.gitignore
+++ b/arch/s390/tools/.gitignore
@@ -1 +1,2 @@
1gen_facilities 1gen_facilities
2gen_opcode_table
diff --git a/arch/s390/tools/Makefile b/arch/s390/tools/Makefile
index 2e70e25de07a..48cdac1143a9 100644
--- a/arch/s390/tools/Makefile
+++ b/arch/s390/tools/Makefile
@@ -3,22 +3,33 @@
3# Makefile for s390 specific build tools 3# Makefile for s390 specific build tools
4# 4#
5 5
6kapi := arch/$(ARCH)/include/generated/asm
7kapi-hdrs-y := $(kapi)/facility-defs.h $(kapi)/dis-defs.h
8
9targets += $(addprefix ../../../,$(kapi-hdrs-y))
10PHONY += kapi
11
12kapi: $(kapi-hdrs-y)
13
6hostprogs-y += gen_facilities 14hostprogs-y += gen_facilities
7hostprogs-y += gen_opcode_table 15hostprogs-y += gen_opcode_table
8 16
9HOSTCFLAGS_gen_facilities.o += -Wall $(LINUXINCLUDE) 17HOSTCFLAGS_gen_facilities.o += -Wall $(LINUXINCLUDE)
10HOSTCFLAGS_gen_opcode_table.o += -Wall $(LINUXINCLUDE) 18HOSTCFLAGS_gen_opcode_table.o += -Wall $(LINUXINCLUDE)
11 19
12define filechk_facilities.h 20# Ensure output directory exists
21_dummy := $(shell [ -d '$(kapi)' ] || mkdir -p '$(kapi)')
22
23define filechk_facility-defs.h
13 $(obj)/gen_facilities 24 $(obj)/gen_facilities
14endef 25endef
15 26
16define filechk_dis.h 27define filechk_dis-defs.h
17 ( $(obj)/gen_opcode_table < $(srctree)/arch/$(ARCH)/tools/opcodes.txt ) 28 ( $(obj)/gen_opcode_table < $(srctree)/arch/$(ARCH)/tools/opcodes.txt )
18endef 29endef
19 30
20include/generated/facilities.h: $(obj)/gen_facilities FORCE 31$(kapi)/facility-defs.h: $(obj)/gen_facilities FORCE
21 $(call filechk,facilities.h) 32 $(call filechk,facility-defs.h)
22 33
23include/generated/dis.h: $(obj)/gen_opcode_table FORCE 34$(kapi)/dis-defs.h: $(obj)/gen_opcode_table FORCE
24 $(call filechk,dis.h) 35 $(call filechk,dis-defs.h)
diff --git a/arch/s390/tools/gen_facilities.c b/arch/s390/tools/gen_facilities.c
index 0373801d9860..424a1ba4f874 100644
--- a/arch/s390/tools/gen_facilities.c
+++ b/arch/s390/tools/gen_facilities.c
@@ -128,8 +128,8 @@ static void print_facility_lists(void)
128 128
129int main(int argc, char **argv) 129int main(int argc, char **argv)
130{ 130{
131 printf("#ifndef __ASM_S390_FACILITIES__\n"); 131 printf("#ifndef __ASM_S390_FACILITY_DEFS__\n");
132 printf("#define __ASM_S390_FACILITIES__\n"); 132 printf("#define __ASM_S390_FACILITY_DEFS__\n");
133 printf("/*\n"); 133 printf("/*\n");
134 printf(" * DO NOT MODIFY.\n"); 134 printf(" * DO NOT MODIFY.\n");
135 printf(" *\n"); 135 printf(" *\n");
diff --git a/arch/s390/tools/gen_opcode_table.c b/arch/s390/tools/gen_opcode_table.c
index 357d42681cef..259aa0680d1a 100644
--- a/arch/s390/tools/gen_opcode_table.c
+++ b/arch/s390/tools/gen_opcode_table.c
@@ -321,8 +321,8 @@ int main(int argc, char **argv)
321 struct gen_opcode *desc = &_desc; 321 struct gen_opcode *desc = &_desc;
322 322
323 read_instructions(desc); 323 read_instructions(desc);
324 printf("#ifndef __S390_GENERATED_DIS_H__\n"); 324 printf("#ifndef __S390_GENERATED_DIS_DEFS_H__\n");
325 printf("#define __S390_GENERATED_DIS_H__\n"); 325 printf("#define __S390_GENERATED_DIS_DEFS_H__\n");
326 printf("/*\n"); 326 printf("/*\n");
327 printf(" * DO NOT MODIFY.\n"); 327 printf(" * DO NOT MODIFY.\n");
328 printf(" *\n"); 328 printf(" *\n");