Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

+856 -863
+11 -3
arch/s390/Makefile
··· 88 88 endif 89 89 endif 90 90 91 + # Test CFI features of binutils 92 + cfi := $(call as-instr,.cfi_startproc\n.cfi_val_offset 15$(comma)-160\n.cfi_endproc,-DCONFIG_AS_CFI_VAL_OFFSET=1) 93 + 91 94 KBUILD_CFLAGS += -mbackchain -msoft-float $(cflags-y) 92 95 KBUILD_CFLAGS += -pipe -fno-strength-reduce -Wno-sign-compare 93 - KBUILD_AFLAGS += $(aflags-y) 96 + KBUILD_CFLAGS += -fno-asynchronous-unwind-tables $(cfi) 97 + KBUILD_AFLAGS += $(aflags-y) $(cfi) 94 98 95 99 OBJCOPYFLAGS := -O binary 96 100 ··· 111 107 drivers-$(CONFIG_OPROFILE) += arch/s390/oprofile/ 112 108 113 109 boot := arch/s390/boot 110 + syscalls := arch/s390/kernel/syscalls 114 111 tools := arch/s390/tools 115 112 116 113 all: image bzImage ··· 133 128 $(Q)$(MAKE) $(clean)=$(boot) 134 129 $(Q)$(MAKE) $(clean)=$(tools) 135 130 131 + archheaders: 132 + $(Q)$(MAKE) $(build)=$(syscalls) uapi 133 + 136 134 archprepare: 137 - $(Q)$(MAKE) $(build)=$(tools) include/generated/facilities.h 138 - $(Q)$(MAKE) $(build)=$(tools) include/generated/dis.h 135 + $(Q)$(MAKE) $(build)=$(syscalls) kapi 136 + $(Q)$(MAKE) $(build)=$(tools) kapi 139 137 140 138 # Don't use tabs in echo arguments 141 139 define archhelp
+1
arch/s390/boot/compressed/Makefile
··· 14 14 KBUILD_CFLAGS := -m64 -D__KERNEL__ -O2 15 15 KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING -D__NO_FORTIFY 16 16 KBUILD_CFLAGS += $(cflags-y) -fno-delete-null-pointer-checks -msoft-float 17 + KBUILD_CFLAGS += -fno-asynchronous-unwind-tables 17 18 KBUILD_CFLAGS += $(call cc-option,-mpacked-stack) 18 19 KBUILD_CFLAGS += $(call cc-option,-ffreestanding) 19 20
+9 -3
arch/s390/boot/compressed/vmlinux.lds.S
··· 17 17 HEAD_TEXT 18 18 _ehead = . ; 19 19 } 20 - .rodata.compressed : { 21 - *(.rodata.compressed) 22 - } 23 20 .text : { 24 21 _text = .; /* Text */ 25 22 *(.text) 26 23 *(.text.*) 27 24 _etext = . ; 25 + } 26 + .rodata.compressed : { 27 + *(.rodata.compressed) 28 28 } 29 29 .rodata : { 30 30 _rodata = . ; ··· 48 48 _ebss = .; 49 49 } 50 50 _end = .; 51 + 52 + /* Sections to be discarded */ 53 + /DISCARD/ : { 54 + *(.eh_frame) 55 + *(*__ksymtab*) 56 + } 51 57 }
+5
arch/s390/include/asm/Kbuild
··· 1 1 # SPDX-License-Identifier: GPL-2.0 2 + generated-y += dis-defs.h 3 + generated-y += facility-defs.h 4 + generated-y += syscall_table.h 5 + generated-y += unistd_nr.h 6 + 2 7 generic-y += asm-offsets.h 3 8 generic-y += cacheflush.h 4 9 generic-y += clkdev.h
+1 -1
arch/s390/include/asm/dis.h
··· 9 9 #ifndef __ASM_S390_DIS_H__ 10 10 #define __ASM_S390_DIS_H__ 11 11 12 - #include <generated/dis.h> 12 + #include <asm/dis-defs.h> 13 13 14 14 static inline int insn_length(unsigned char code) 15 15 {
+37
arch/s390/include/asm/dwarf.h
··· 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 */
+1 -1
arch/s390/include/asm/facility.h
··· 8 8 #ifndef __ASM_FACILITY_H 9 9 #define __ASM_FACILITY_H 10 10 11 - #include <generated/facilities.h> 11 + #include <asm/facility-defs.h> 12 12 #include <linux/string.h> 13 13 #include <linux/preempt.h> 14 14 #include <asm/lowcore.h>
+1
arch/s390/include/asm/unistd.h
··· 8 8 #define _ASM_S390_UNISTD_H_ 9 9 10 10 #include <uapi/asm/unistd.h> 11 + #include <asm/unistd_nr.h> 11 12 12 13 #define __IGNORE_time 13 14 #define __IGNORE_pkey_mprotect
+3
arch/s390/include/uapi/asm/Kbuild
··· 2 2 # UAPI Header export list 3 3 include include/uapi/asm-generic/Kbuild.asm 4 4 5 + generated-y += unistd_32.h 6 + generated-y += unistd_64.h 7 + 5 8 generic-y += errno.h 6 9 generic-y += fcntl.h 7 10 generic-y += ioctl.h
+3 -398
arch/s390/include/uapi/asm/unistd.h
··· 8 8 #ifndef _UAPI_ASM_S390_UNISTD_H_ 9 9 #define _UAPI_ASM_S390_UNISTD_H_ 10 10 11 - /* 12 - * This file contains the system call numbers. 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 - 11 + #ifdef __s390x__ 12 + #include <asm/unistd_64.h> 385 13 #else 386 - 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 - 14 + #include <asm/unistd_32.h> 410 15 #endif 411 16 412 17 #endif /* _UAPI_ASM_S390_UNISTD_H_ */
+4 -4
arch/s390/kernel/compat_linux.c
··· 110 110 111 111 COMPAT_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 116 116 COMPAT_SYSCALL_DEFINE2(s390_setreuid16, u16, ruid, u16, euid) ··· 120 120 121 121 COMPAT_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 126 126 COMPAT_SYSCALL_DEFINE3(s390_setresuid16, u16, ruid, u16, euid, u16, suid) ··· 173 173 174 174 COMPAT_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 179 179 COMPAT_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 184 184 static int groups16_to_user(u16 __user *grouplist, struct group_info *group_info)
+2 -2
arch/s390/kernel/entry.S
··· 1392 1392 #define SYSCALL(esame,emu) .long esame 1393 1393 .globl sys_call_table 1394 1394 sys_call_table: 1395 - #include "syscalls.S" 1395 + #include "asm/syscall_table.h" 1396 1396 #undef SYSCALL 1397 1397 1398 1398 #ifdef CONFIG_COMPAT ··· 1400 1400 #define SYSCALL(esame,emu) .long emu 1401 1401 .globl sys_call_table_emu 1402 1402 sys_call_table_emu: 1403 - #include "syscalls.S" 1403 + #include "asm/syscall_table.h" 1404 1404 #undef SYSCALL 1405 1405 #endif
+5 -5
arch/s390/kernel/head.S
··· 66 66 # subroutine to wait for end I/O 67 67 # 68 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 70 lpsw .Lwaitpsw 71 71 .Lioint: 72 72 br %r14 ··· 98 98 bnz .Llderr 99 99 .Lwait4irq: 100 100 bas %r14,.Lirqwait 101 - c %r1,0xb8 # compare subchannel number 101 + c %r1,__LC_SUBCHANNEL_ID # compare subchannel number 102 102 bne .Lwait4irq 103 103 tsch 0(%r5) 104 104 ··· 156 156 .fill 16,4,0x0 157 157 0: lmh %r0,%r15,0(%r13) # clear high-order half of gprs 158 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 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 162 la %r2,IPL_BS # load start address 163 163 bas %r14,.Lloader # load rest of ipl image 164 164 l %r12,.Lparm # pointer to parameter area ··· 239 239 bz .Lnoreset 240 240 .Lwaitforirq: 241 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 243 bne .Lwaitforirq 244 244 la %r5,.Lirb 245 245 tsch 0(%r5)
+4 -8
arch/s390/kernel/ipl.c
··· 119 119 } 120 120 } 121 121 122 - /* 123 - * Must be in data section since the bss section 124 - * is not cleared when these are accessed. 125 - */ 126 - static u8 ipl_ssid __section(.data) = 0; 127 - static u16 ipl_devno __section(.data) = 0; 128 - u32 ipl_flags __section(.data) = 0; 122 + static u8 ipl_ssid; 123 + static u16 ipl_devno; 124 + u32 ipl_flags; 129 125 130 126 enum ipl_method { 131 127 REIPL_METHOD_CCW_CIO, ··· 144 148 DUMP_METHOD_FCP_DIAG, 145 149 }; 146 150 147 - static int diag308_set_works = 0; 151 + static int diag308_set_works; 148 152 149 153 static struct ipl_parameter_block ipl_block; 150 154
-1
arch/s390/kernel/kprobes.c
··· 20 20 #include <linux/ftrace.h> 21 21 #include <asm/set_memory.h> 22 22 #include <asm/sections.h> 23 - #include <linux/uaccess.h> 24 23 #include <asm/dis.h> 25 24 26 25 DEFINE_PER_CPU(struct kprobe *, current_kprobe);
-392
arch/s390/kernel/syscalls.S
··· 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 - 12 - NI_SYSCALL /* 0 */ 13 - SYSCALL(sys_exit,sys_exit) 14 - SYSCALL(sys_fork,sys_fork) 15 - SYSCALL(sys_read,compat_sys_s390_read) 16 - SYSCALL(sys_write,compat_sys_s390_write) 17 - SYSCALL(sys_open,compat_sys_open) /* 5 */ 18 - SYSCALL(sys_close,sys_close) 19 - SYSCALL(sys_restart_syscall,sys_restart_syscall) 20 - SYSCALL(sys_creat,compat_sys_creat) 21 - SYSCALL(sys_link,compat_sys_link) 22 - SYSCALL(sys_unlink,compat_sys_unlink) /* 10 */ 23 - SYSCALL(sys_execve,compat_sys_execve) 24 - SYSCALL(sys_chdir,compat_sys_chdir) 25 - SYSCALL(sys_ni_syscall,compat_sys_time) /* old time syscall */ 26 - SYSCALL(sys_mknod,compat_sys_mknod) 27 - SYSCALL(sys_chmod,compat_sys_chmod) /* 15 */ 28 - SYSCALL(sys_ni_syscall,compat_sys_s390_lchown16) /* old lchown16 syscall*/ 29 - NI_SYSCALL /* old break syscall holder */ 30 - NI_SYSCALL /* old stat syscall holder */ 31 - SYSCALL(sys_lseek,compat_sys_lseek) 32 - SYSCALL(sys_getpid,sys_getpid) /* 20 */ 33 - SYSCALL(sys_mount,compat_sys_mount) 34 - SYSCALL(sys_oldumount,compat_sys_oldumount) 35 - SYSCALL(sys_ni_syscall,compat_sys_s390_setuid16) /* old setuid16 syscall*/ 36 - SYSCALL(sys_ni_syscall,compat_sys_s390_getuid16) /* old getuid16 syscall*/ 37 - SYSCALL(sys_ni_syscall,compat_sys_stime) /* 25 old stime syscall */ 38 - SYSCALL(sys_ptrace,compat_sys_ptrace) 39 - SYSCALL(sys_alarm,sys_alarm) 40 - NI_SYSCALL /* old fstat syscall */ 41 - SYSCALL(sys_pause,sys_pause) 42 - SYSCALL(sys_utime,compat_sys_utime) /* 30 */ 43 - NI_SYSCALL /* old stty syscall */ 44 - NI_SYSCALL /* old gtty syscall */ 45 - SYSCALL(sys_access,compat_sys_access) 46 - SYSCALL(sys_nice,sys_nice) 47 - NI_SYSCALL /* 35 old ftime syscall */ 48 - SYSCALL(sys_sync,sys_sync) 49 - SYSCALL(sys_kill,sys_kill) 50 - SYSCALL(sys_rename,compat_sys_rename) 51 - SYSCALL(sys_mkdir,compat_sys_mkdir) 52 - SYSCALL(sys_rmdir,compat_sys_rmdir) /* 40 */ 53 - SYSCALL(sys_dup,sys_dup) 54 - SYSCALL(sys_pipe,compat_sys_pipe) 55 - SYSCALL(sys_times,compat_sys_times) 56 - NI_SYSCALL /* old prof syscall */ 57 - SYSCALL(sys_brk,compat_sys_brk) /* 45 */ 58 - SYSCALL(sys_ni_syscall,compat_sys_s390_setgid16) /* old setgid16 syscall*/ 59 - SYSCALL(sys_ni_syscall,compat_sys_s390_getgid16) /* old getgid16 syscall*/ 60 - SYSCALL(sys_signal,compat_sys_signal) 61 - SYSCALL(sys_ni_syscall,compat_sys_s390_geteuid16) /* old geteuid16 syscall */ 62 - SYSCALL(sys_ni_syscall,compat_sys_s390_getegid16) /* 50 old getegid16 syscall */ 63 - SYSCALL(sys_acct,compat_sys_acct) 64 - SYSCALL(sys_umount,compat_sys_umount) 65 - NI_SYSCALL /* old lock syscall */ 66 - SYSCALL(sys_ioctl,compat_sys_ioctl) 67 - SYSCALL(sys_fcntl,compat_sys_fcntl) /* 55 */ 68 - NI_SYSCALL /* intel mpx syscall */ 69 - SYSCALL(sys_setpgid,sys_setpgid) 70 - NI_SYSCALL /* old ulimit syscall */ 71 - NI_SYSCALL /* old uname syscall */ 72 - SYSCALL(sys_umask,sys_umask) /* 60 */ 73 - SYSCALL(sys_chroot,compat_sys_chroot) 74 - SYSCALL(sys_ustat,compat_sys_ustat) 75 - SYSCALL(sys_dup2,sys_dup2) 76 - SYSCALL(sys_getppid,sys_getppid) 77 - SYSCALL(sys_getpgrp,sys_getpgrp) /* 65 */ 78 - SYSCALL(sys_setsid,sys_setsid) 79 - SYSCALL(sys_sigaction,compat_sys_sigaction) 80 - NI_SYSCALL /* old sgetmask syscall*/ 81 - NI_SYSCALL /* old ssetmask syscall*/ 82 - SYSCALL(sys_ni_syscall,compat_sys_s390_setreuid16) /* old setreuid16 syscall */ 83 - SYSCALL(sys_ni_syscall,compat_sys_s390_setregid16) /* old setregid16 syscall */ 84 - SYSCALL(sys_sigsuspend,compat_sys_sigsuspend) 85 - SYSCALL(sys_sigpending,compat_sys_sigpending) 86 - SYSCALL(sys_sethostname,compat_sys_sethostname) 87 - SYSCALL(sys_setrlimit,compat_sys_setrlimit) /* 75 */ 88 - SYSCALL(sys_getrlimit,compat_sys_old_getrlimit) 89 - SYSCALL(sys_getrusage,compat_sys_getrusage) 90 - SYSCALL(sys_gettimeofday,compat_sys_gettimeofday) 91 - SYSCALL(sys_settimeofday,compat_sys_settimeofday) 92 - SYSCALL(sys_ni_syscall,compat_sys_s390_getgroups16) /* 80 old getgroups16 syscall */ 93 - SYSCALL(sys_ni_syscall,compat_sys_s390_setgroups16) /* old setgroups16 syscall */ 94 - NI_SYSCALL /* old select syscall */ 95 - SYSCALL(sys_symlink,compat_sys_symlink) 96 - NI_SYSCALL /* old lstat syscall */ 97 - SYSCALL(sys_readlink,compat_sys_readlink) /* 85 */ 98 - SYSCALL(sys_uselib,compat_sys_uselib) 99 - SYSCALL(sys_swapon,compat_sys_swapon) 100 - SYSCALL(sys_reboot,compat_sys_reboot) 101 - SYSCALL(sys_ni_syscall,compat_sys_old_readdir) /* old readdir syscall */ 102 - SYSCALL(sys_old_mmap,compat_sys_s390_old_mmap) /* 90 */ 103 - SYSCALL(sys_munmap,compat_sys_munmap) 104 - SYSCALL(sys_truncate,compat_sys_truncate) 105 - SYSCALL(sys_ftruncate,compat_sys_ftruncate) 106 - SYSCALL(sys_fchmod,sys_fchmod) 107 - SYSCALL(sys_ni_syscall,compat_sys_s390_fchown16) /* 95 old fchown16 syscall*/ 108 - SYSCALL(sys_getpriority,sys_getpriority) 109 - SYSCALL(sys_setpriority,sys_setpriority) 110 - NI_SYSCALL /* old profil syscall */ 111 - SYSCALL(sys_statfs,compat_sys_statfs) 112 - SYSCALL(sys_fstatfs,compat_sys_fstatfs) /* 100 */ 113 - NI_SYSCALL /* ioperm for i386 */ 114 - SYSCALL(sys_socketcall,compat_sys_socketcall) 115 - SYSCALL(sys_syslog,compat_sys_syslog) 116 - SYSCALL(sys_setitimer,compat_sys_setitimer) 117 - SYSCALL(sys_getitimer,compat_sys_getitimer) /* 105 */ 118 - SYSCALL(sys_newstat,compat_sys_newstat) 119 - SYSCALL(sys_newlstat,compat_sys_newlstat) 120 - SYSCALL(sys_newfstat,compat_sys_newfstat) 121 - NI_SYSCALL /* old uname syscall */ 122 - SYSCALL(sys_lookup_dcookie,compat_sys_lookup_dcookie) /* 110 */ 123 - SYSCALL(sys_vhangup,sys_vhangup) 124 - NI_SYSCALL /* old "idle" system call */ 125 - NI_SYSCALL /* vm86old for i386 */ 126 - SYSCALL(sys_wait4,compat_sys_wait4) 127 - SYSCALL(sys_swapoff,compat_sys_swapoff) /* 115 */ 128 - SYSCALL(sys_sysinfo,compat_sys_sysinfo) 129 - SYSCALL(sys_s390_ipc,compat_sys_s390_ipc) 130 - SYSCALL(sys_fsync,sys_fsync) 131 - SYSCALL(sys_sigreturn,compat_sys_sigreturn) 132 - SYSCALL(sys_clone,compat_sys_clone) /* 120 */ 133 - SYSCALL(sys_setdomainname,compat_sys_setdomainname) 134 - SYSCALL(sys_newuname,compat_sys_newuname) 135 - NI_SYSCALL /* modify_ldt for i386 */ 136 - SYSCALL(sys_adjtimex,compat_sys_adjtimex) 137 - SYSCALL(sys_mprotect,compat_sys_mprotect) /* 125 */ 138 - SYSCALL(sys_sigprocmask,compat_sys_sigprocmask) 139 - NI_SYSCALL /* old "create module" */ 140 - SYSCALL(sys_init_module,compat_sys_init_module) 141 - SYSCALL(sys_delete_module,compat_sys_delete_module) 142 - NI_SYSCALL /* 130: old get_kernel_syms */ 143 - SYSCALL(sys_quotactl,compat_sys_quotactl) 144 - SYSCALL(sys_getpgid,sys_getpgid) 145 - SYSCALL(sys_fchdir,sys_fchdir) 146 - SYSCALL(sys_bdflush,compat_sys_bdflush) 147 - SYSCALL(sys_sysfs,compat_sys_sysfs) /* 135 */ 148 - SYSCALL(sys_s390_personality,sys_s390_personality) 149 - NI_SYSCALL /* for afs_syscall */ 150 - SYSCALL(sys_ni_syscall,compat_sys_s390_setfsuid16) /* old setfsuid16 syscall */ 151 - SYSCALL(sys_ni_syscall,compat_sys_s390_setfsgid16) /* old setfsgid16 syscall */ 152 - SYSCALL(sys_llseek,compat_sys_llseek) /* 140 */ 153 - SYSCALL(sys_getdents,compat_sys_getdents) 154 - SYSCALL(sys_select,compat_sys_select) 155 - SYSCALL(sys_flock,sys_flock) 156 - SYSCALL(sys_msync,compat_sys_msync) 157 - SYSCALL(sys_readv,compat_sys_readv) /* 145 */ 158 - SYSCALL(sys_writev,compat_sys_writev) 159 - SYSCALL(sys_getsid,sys_getsid) 160 - SYSCALL(sys_fdatasync,sys_fdatasync) 161 - SYSCALL(sys_sysctl,compat_sys_sysctl) 162 - SYSCALL(sys_mlock,compat_sys_mlock) /* 150 */ 163 - SYSCALL(sys_munlock,compat_sys_munlock) 164 - SYSCALL(sys_mlockall,sys_mlockall) 165 - SYSCALL(sys_munlockall,sys_munlockall) 166 - SYSCALL(sys_sched_setparam,compat_sys_sched_setparam) 167 - SYSCALL(sys_sched_getparam,compat_sys_sched_getparam) /* 155 */ 168 - SYSCALL(sys_sched_setscheduler,compat_sys_sched_setscheduler) 169 - SYSCALL(sys_sched_getscheduler,sys_sched_getscheduler) 170 - SYSCALL(sys_sched_yield,sys_sched_yield) 171 - SYSCALL(sys_sched_get_priority_max,sys_sched_get_priority_max) 172 - SYSCALL(sys_sched_get_priority_min,sys_sched_get_priority_min) /* 160 */ 173 - SYSCALL(sys_sched_rr_get_interval,compat_sys_sched_rr_get_interval) 174 - SYSCALL(sys_nanosleep,compat_sys_nanosleep) 175 - SYSCALL(sys_mremap,compat_sys_mremap) 176 - SYSCALL(sys_ni_syscall,compat_sys_s390_setresuid16) /* old setresuid16 syscall */ 177 - SYSCALL(sys_ni_syscall,compat_sys_s390_getresuid16) /* 165 old getresuid16 syscall */ 178 - NI_SYSCALL /* for vm86 */ 179 - NI_SYSCALL /* old sys_query_module */ 180 - SYSCALL(sys_poll,compat_sys_poll) 181 - NI_SYSCALL /* old nfsservctl */ 182 - SYSCALL(sys_ni_syscall,compat_sys_s390_setresgid16) /* 170 old setresgid16 syscall */ 183 - SYSCALL(sys_ni_syscall,compat_sys_s390_getresgid16) /* old getresgid16 syscall */ 184 - SYSCALL(sys_prctl,compat_sys_prctl) 185 - SYSCALL(sys_rt_sigreturn,compat_sys_rt_sigreturn) 186 - SYSCALL(sys_rt_sigaction,compat_sys_rt_sigaction) 187 - SYSCALL(sys_rt_sigprocmask,compat_sys_rt_sigprocmask) /* 175 */ 188 - SYSCALL(sys_rt_sigpending,compat_sys_rt_sigpending) 189 - SYSCALL(sys_rt_sigtimedwait,compat_sys_rt_sigtimedwait) 190 - SYSCALL(sys_rt_sigqueueinfo,compat_sys_rt_sigqueueinfo) 191 - SYSCALL(sys_rt_sigsuspend,compat_sys_rt_sigsuspend) 192 - SYSCALL(sys_pread64,compat_sys_s390_pread64) /* 180 */ 193 - SYSCALL(sys_pwrite64,compat_sys_s390_pwrite64) 194 - SYSCALL(sys_ni_syscall,compat_sys_s390_chown16) /* old chown16 syscall */ 195 - SYSCALL(sys_getcwd,compat_sys_getcwd) 196 - SYSCALL(sys_capget,compat_sys_capget) 197 - SYSCALL(sys_capset,compat_sys_capset) /* 185 */ 198 - SYSCALL(sys_sigaltstack,compat_sys_sigaltstack) 199 - SYSCALL(sys_sendfile64,compat_sys_sendfile) 200 - NI_SYSCALL /* streams1 */ 201 - NI_SYSCALL /* streams2 */ 202 - SYSCALL(sys_vfork,sys_vfork) /* 190 */ 203 - SYSCALL(sys_getrlimit,compat_sys_getrlimit) 204 - SYSCALL(sys_mmap2,compat_sys_s390_mmap2) 205 - SYSCALL(sys_ni_syscall,compat_sys_s390_truncate64) 206 - SYSCALL(sys_ni_syscall,compat_sys_s390_ftruncate64) 207 - SYSCALL(sys_ni_syscall,compat_sys_s390_stat64) /* 195 */ 208 - SYSCALL(sys_ni_syscall,compat_sys_s390_lstat64) 209 - SYSCALL(sys_ni_syscall,compat_sys_s390_fstat64) 210 - SYSCALL(sys_lchown,compat_sys_lchown) 211 - SYSCALL(sys_getuid,sys_getuid) 212 - SYSCALL(sys_getgid,sys_getgid) /* 200 */ 213 - SYSCALL(sys_geteuid,sys_geteuid) 214 - SYSCALL(sys_getegid,sys_getegid) 215 - SYSCALL(sys_setreuid,sys_setreuid) 216 - SYSCALL(sys_setregid,sys_setregid) 217 - SYSCALL(sys_getgroups,compat_sys_getgroups) /* 205 */ 218 - SYSCALL(sys_setgroups,compat_sys_setgroups) 219 - SYSCALL(sys_fchown,sys_fchown) 220 - SYSCALL(sys_setresuid,sys_setresuid) 221 - SYSCALL(sys_getresuid,compat_sys_getresuid) 222 - SYSCALL(sys_setresgid,sys_setresgid) /* 210 */ 223 - SYSCALL(sys_getresgid,compat_sys_getresgid) 224 - SYSCALL(sys_chown,compat_sys_chown) 225 - SYSCALL(sys_setuid,sys_setuid) 226 - SYSCALL(sys_setgid,sys_setgid) 227 - SYSCALL(sys_setfsuid,sys_setfsuid) /* 215 */ 228 - SYSCALL(sys_setfsgid,sys_setfsgid) 229 - SYSCALL(sys_pivot_root,compat_sys_pivot_root) 230 - SYSCALL(sys_mincore,compat_sys_mincore) 231 - SYSCALL(sys_madvise,compat_sys_madvise) 232 - SYSCALL(sys_getdents64,compat_sys_getdents64) /* 220 */ 233 - SYSCALL(sys_ni_syscall,compat_sys_fcntl64) 234 - SYSCALL(sys_readahead,compat_sys_s390_readahead) 235 - SYSCALL(sys_ni_syscall,compat_sys_sendfile64) 236 - SYSCALL(sys_setxattr,compat_sys_setxattr) 237 - SYSCALL(sys_lsetxattr,compat_sys_lsetxattr) /* 225 */ 238 - SYSCALL(sys_fsetxattr,compat_sys_fsetxattr) 239 - SYSCALL(sys_getxattr,compat_sys_getxattr) 240 - SYSCALL(sys_lgetxattr,compat_sys_lgetxattr) 241 - SYSCALL(sys_fgetxattr,compat_sys_fgetxattr) 242 - SYSCALL(sys_listxattr,compat_sys_listxattr) /* 230 */ 243 - SYSCALL(sys_llistxattr,compat_sys_llistxattr) 244 - SYSCALL(sys_flistxattr,compat_sys_flistxattr) 245 - SYSCALL(sys_removexattr,compat_sys_removexattr) 246 - SYSCALL(sys_lremovexattr,compat_sys_lremovexattr) 247 - SYSCALL(sys_fremovexattr,compat_sys_fremovexattr) /* 235 */ 248 - SYSCALL(sys_gettid,sys_gettid) 249 - SYSCALL(sys_tkill,sys_tkill) 250 - SYSCALL(sys_futex,compat_sys_futex) 251 - SYSCALL(sys_sched_setaffinity,compat_sys_sched_setaffinity) 252 - SYSCALL(sys_sched_getaffinity,compat_sys_sched_getaffinity) /* 240 */ 253 - SYSCALL(sys_tgkill,sys_tgkill) 254 - NI_SYSCALL /* reserved for TUX */ 255 - SYSCALL(sys_io_setup,compat_sys_io_setup) 256 - SYSCALL(sys_io_destroy,compat_sys_io_destroy) 257 - SYSCALL(sys_io_getevents,compat_sys_io_getevents) /* 245 */ 258 - SYSCALL(sys_io_submit,compat_sys_io_submit) 259 - SYSCALL(sys_io_cancel,compat_sys_io_cancel) 260 - SYSCALL(sys_exit_group,sys_exit_group) 261 - SYSCALL(sys_epoll_create,sys_epoll_create) 262 - SYSCALL(sys_epoll_ctl,compat_sys_epoll_ctl) /* 250 */ 263 - SYSCALL(sys_epoll_wait,compat_sys_epoll_wait) 264 - SYSCALL(sys_set_tid_address,compat_sys_set_tid_address) 265 - SYSCALL(sys_fadvise64_64,compat_sys_s390_fadvise64) 266 - SYSCALL(sys_timer_create,compat_sys_timer_create) 267 - SYSCALL(sys_timer_settime,compat_sys_timer_settime) /* 255 */ 268 - SYSCALL(sys_timer_gettime,compat_sys_timer_gettime) 269 - SYSCALL(sys_timer_getoverrun,sys_timer_getoverrun) 270 - SYSCALL(sys_timer_delete,sys_timer_delete) 271 - SYSCALL(sys_clock_settime,compat_sys_clock_settime) 272 - SYSCALL(sys_clock_gettime,compat_sys_clock_gettime) /* 260 */ 273 - SYSCALL(sys_clock_getres,compat_sys_clock_getres) 274 - SYSCALL(sys_clock_nanosleep,compat_sys_clock_nanosleep) 275 - NI_SYSCALL /* reserved for vserver */ 276 - SYSCALL(sys_ni_syscall,compat_sys_s390_fadvise64_64) 277 - SYSCALL(sys_statfs64,compat_sys_statfs64) 278 - SYSCALL(sys_fstatfs64,compat_sys_fstatfs64) 279 - SYSCALL(sys_remap_file_pages,compat_sys_remap_file_pages) 280 - SYSCALL(sys_mbind,compat_sys_mbind) 281 - SYSCALL(sys_get_mempolicy,compat_sys_get_mempolicy) 282 - SYSCALL(sys_set_mempolicy,compat_sys_set_mempolicy) 283 - SYSCALL(sys_mq_open,compat_sys_mq_open) 284 - SYSCALL(sys_mq_unlink,compat_sys_mq_unlink) 285 - SYSCALL(sys_mq_timedsend,compat_sys_mq_timedsend) 286 - SYSCALL(sys_mq_timedreceive,compat_sys_mq_timedreceive) 287 - SYSCALL(sys_mq_notify,compat_sys_mq_notify) /* 275 */ 288 - SYSCALL(sys_mq_getsetattr,compat_sys_mq_getsetattr) 289 - SYSCALL(sys_kexec_load,compat_sys_kexec_load) 290 - SYSCALL(sys_add_key,compat_sys_add_key) 291 - SYSCALL(sys_request_key,compat_sys_request_key) 292 - SYSCALL(sys_keyctl,compat_sys_keyctl) /* 280 */ 293 - SYSCALL(sys_waitid,compat_sys_waitid) 294 - SYSCALL(sys_ioprio_set,sys_ioprio_set) 295 - SYSCALL(sys_ioprio_get,sys_ioprio_get) 296 - SYSCALL(sys_inotify_init,sys_inotify_init) 297 - SYSCALL(sys_inotify_add_watch,compat_sys_inotify_add_watch) /* 285 */ 298 - SYSCALL(sys_inotify_rm_watch,sys_inotify_rm_watch) 299 - SYSCALL(sys_migrate_pages,compat_sys_migrate_pages) 300 - SYSCALL(sys_openat,compat_sys_openat) 301 - SYSCALL(sys_mkdirat,compat_sys_mkdirat) 302 - SYSCALL(sys_mknodat,compat_sys_mknodat) /* 290 */ 303 - SYSCALL(sys_fchownat,compat_sys_fchownat) 304 - SYSCALL(sys_futimesat,compat_sys_futimesat) 305 - SYSCALL(sys_newfstatat,compat_sys_s390_fstatat64) 306 - SYSCALL(sys_unlinkat,compat_sys_unlinkat) 307 - SYSCALL(sys_renameat,compat_sys_renameat) /* 295 */ 308 - SYSCALL(sys_linkat,compat_sys_linkat) 309 - SYSCALL(sys_symlinkat,compat_sys_symlinkat) 310 - SYSCALL(sys_readlinkat,compat_sys_readlinkat) 311 - SYSCALL(sys_fchmodat,compat_sys_fchmodat) 312 - SYSCALL(sys_faccessat,compat_sys_faccessat) /* 300 */ 313 - SYSCALL(sys_pselect6,compat_sys_pselect6) 314 - SYSCALL(sys_ppoll,compat_sys_ppoll) 315 - SYSCALL(sys_unshare,compat_sys_unshare) 316 - SYSCALL(sys_set_robust_list,compat_sys_set_robust_list) 317 - SYSCALL(sys_get_robust_list,compat_sys_get_robust_list) 318 - SYSCALL(sys_splice,compat_sys_splice) 319 - SYSCALL(sys_sync_file_range,compat_sys_s390_sync_file_range) 320 - SYSCALL(sys_tee,compat_sys_tee) 321 - SYSCALL(sys_vmsplice,compat_sys_vmsplice) 322 - SYSCALL(sys_move_pages,compat_sys_move_pages) 323 - SYSCALL(sys_getcpu,compat_sys_getcpu) 324 - SYSCALL(sys_epoll_pwait,compat_sys_epoll_pwait) 325 - SYSCALL(sys_utimes,compat_sys_utimes) 326 - SYSCALL(sys_fallocate,compat_sys_s390_fallocate) 327 - SYSCALL(sys_utimensat,compat_sys_utimensat) /* 315 */ 328 - SYSCALL(sys_signalfd,compat_sys_signalfd) 329 - NI_SYSCALL /* 317 old sys_timer_fd */ 330 - SYSCALL(sys_eventfd,sys_eventfd) 331 - SYSCALL(sys_timerfd_create,sys_timerfd_create) 332 - SYSCALL(sys_timerfd_settime,compat_sys_timerfd_settime) /* 320 */ 333 - SYSCALL(sys_timerfd_gettime,compat_sys_timerfd_gettime) 334 - SYSCALL(sys_signalfd4,compat_sys_signalfd4) 335 - SYSCALL(sys_eventfd2,sys_eventfd2) 336 - SYSCALL(sys_inotify_init1,sys_inotify_init1) 337 - SYSCALL(sys_pipe2,compat_sys_pipe2) /* 325 */ 338 - SYSCALL(sys_dup3,sys_dup3) 339 - SYSCALL(sys_epoll_create1,sys_epoll_create1) 340 - SYSCALL(sys_preadv,compat_sys_preadv) 341 - SYSCALL(sys_pwritev,compat_sys_pwritev) 342 - SYSCALL(sys_rt_tgsigqueueinfo,compat_sys_rt_tgsigqueueinfo) /* 330 */ 343 - SYSCALL(sys_perf_event_open,compat_sys_perf_event_open) 344 - SYSCALL(sys_fanotify_init,sys_fanotify_init) 345 - SYSCALL(sys_fanotify_mark,compat_sys_fanotify_mark) 346 - SYSCALL(sys_prlimit64,compat_sys_prlimit64) 347 - SYSCALL(sys_name_to_handle_at,compat_sys_name_to_handle_at) /* 335 */ 348 - SYSCALL(sys_open_by_handle_at,compat_sys_open_by_handle_at) 349 - SYSCALL(sys_clock_adjtime,compat_sys_clock_adjtime) 350 - SYSCALL(sys_syncfs,sys_syncfs) 351 - SYSCALL(sys_setns,sys_setns) 352 - SYSCALL(sys_process_vm_readv,compat_sys_process_vm_readv) /* 340 */ 353 - SYSCALL(sys_process_vm_writev,compat_sys_process_vm_writev) 354 - SYSCALL(sys_s390_runtime_instr,sys_s390_runtime_instr) 355 - SYSCALL(sys_kcmp,compat_sys_kcmp) 356 - SYSCALL(sys_finit_module,compat_sys_finit_module) 357 - SYSCALL(sys_sched_setattr,compat_sys_sched_setattr) /* 345 */ 358 - SYSCALL(sys_sched_getattr,compat_sys_sched_getattr) 359 - SYSCALL(sys_renameat2,compat_sys_renameat2) 360 - SYSCALL(sys_seccomp,compat_sys_seccomp) 361 - SYSCALL(sys_getrandom,compat_sys_getrandom) 362 - SYSCALL(sys_memfd_create,compat_sys_memfd_create) /* 350 */ 363 - SYSCALL(sys_bpf,compat_sys_bpf) 364 - SYSCALL(sys_s390_pci_mmio_write,compat_sys_s390_pci_mmio_write) 365 - SYSCALL(sys_s390_pci_mmio_read,compat_sys_s390_pci_mmio_read) 366 - SYSCALL(sys_execveat,compat_sys_execveat) 367 - SYSCALL(sys_userfaultfd,sys_userfaultfd) /* 355 */ 368 - SYSCALL(sys_membarrier,sys_membarrier) 369 - SYSCALL(sys_recvmmsg,compat_sys_recvmmsg) 370 - SYSCALL(sys_sendmmsg,compat_sys_sendmmsg) 371 - SYSCALL(sys_socket,sys_socket) 372 - SYSCALL(sys_socketpair,compat_sys_socketpair) /* 360 */ 373 - SYSCALL(sys_bind,compat_sys_bind) 374 - SYSCALL(sys_connect,compat_sys_connect) 375 - SYSCALL(sys_listen,sys_listen) 376 - SYSCALL(sys_accept4,compat_sys_accept4) 377 - SYSCALL(sys_getsockopt,compat_sys_getsockopt) /* 365 */ 378 - SYSCALL(sys_setsockopt,compat_sys_setsockopt) 379 - SYSCALL(sys_getsockname,compat_sys_getsockname) 380 - SYSCALL(sys_getpeername,compat_sys_getpeername) 381 - SYSCALL(sys_sendto,compat_sys_sendto) 382 - SYSCALL(sys_sendmsg,compat_sys_sendmsg) /* 370 */ 383 - SYSCALL(sys_recvfrom,compat_sys_recvfrom) 384 - SYSCALL(sys_recvmsg,compat_sys_recvmsg) 385 - SYSCALL(sys_shutdown,sys_shutdown) 386 - SYSCALL(sys_mlock2,compat_sys_mlock2) 387 - SYSCALL(sys_copy_file_range,compat_sys_copy_file_range) /* 375 */ 388 - SYSCALL(sys_preadv2,compat_sys_preadv2) 389 - SYSCALL(sys_pwritev2,compat_sys_pwritev2) 390 - SYSCALL(sys_s390_guarded_storage,compat_sys_s390_guarded_storage) /* 378 */ 391 - SYSCALL(sys_statx,compat_sys_statx) 392 - SYSCALL(sys_s390_sthyi,compat_sys_s390_sthyi)
+52
arch/s390/kernel/syscalls/Makefile
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + 3 + gen := arch/$(ARCH)/include/generated 4 + kapi := $(gen)/asm 5 + uapi := $(gen)/uapi/asm 6 + 7 + syscall := $(srctree)/$(src)/syscall.tbl 8 + systbl := $(srctree)/$(src)/syscalltbl 9 + 10 + gen-y := $(kapi)/syscall_table.h 11 + kapi-hdrs-y := $(kapi)/unistd_nr.h 12 + uapi-hdrs-y := $(uapi)/unistd_32.h 13 + uapi-hdrs-y += $(uapi)/unistd_64.h 14 + 15 + targets += $(addprefix ../../../,$(gen-y) $(kapi-hdrs-y) $(uapi-hdrs-y)) 16 + 17 + PHONY += kapi uapi 18 + 19 + kapi: $(gen-y) $(kapi-hdrs-y) 20 + uapi: $(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 + 27 + define filechk_syshdr 28 + $(CONFIG_SHELL) '$(systbl)' -H -a $(syshdr_abi_$(basetarget)) -f "$2" 29 + endef 30 + 31 + define filechk_sysnr 32 + $(CONFIG_SHELL) '$(systbl)' -N -a $(sysnr_abi_$(basetarget)) 33 + endef 34 + 35 + define filechk_syscalls 36 + $(CONFIG_SHELL) '$(systbl)' -S 37 + endef 38 + 39 + syshdr_abi_unistd_32 := common,32 40 + $(uapi)/unistd_32.h: $(syscall) FORCE 41 + $(call filechk,syshdr,$@) 42 + 43 + syshdr_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 + 50 + sysnr_abi_unistd_nr := common,32,64 51 + $(kapi)/unistd_nr.h: $(syscall) FORCE 52 + $(call filechk,sysnr)
+390
arch/s390/kernel/syscalls/syscall.tbl
··· 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 + 11 + 1 common exit sys_exit sys_exit 12 + 2 common fork sys_fork sys_fork 13 + 3 common read sys_read compat_sys_s390_read 14 + 4 common write sys_write compat_sys_s390_write 15 + 5 common open sys_open compat_sys_open 16 + 6 common close sys_close sys_close 17 + 7 common restart_syscall sys_restart_syscall sys_restart_syscall 18 + 8 common creat sys_creat compat_sys_creat 19 + 9 common link sys_link compat_sys_link 20 + 10 common unlink sys_unlink compat_sys_unlink 21 + 11 common execve sys_execve compat_sys_execve 22 + 12 common chdir sys_chdir compat_sys_chdir 23 + 13 32 time - compat_sys_time 24 + 14 common mknod sys_mknod compat_sys_mknod 25 + 15 common chmod sys_chmod compat_sys_chmod 26 + 16 32 lchown - compat_sys_s390_lchown16 27 + 19 common lseek sys_lseek compat_sys_lseek 28 + 20 common getpid sys_getpid sys_getpid 29 + 21 common mount sys_mount compat_sys_mount 30 + 22 common umount sys_oldumount compat_sys_oldumount 31 + 23 32 setuid - compat_sys_s390_setuid16 32 + 24 32 getuid - compat_sys_s390_getuid16 33 + 25 32 stime - compat_sys_stime 34 + 26 common ptrace sys_ptrace compat_sys_ptrace 35 + 27 common alarm sys_alarm sys_alarm 36 + 29 common pause sys_pause sys_pause 37 + 30 common utime sys_utime compat_sys_utime 38 + 33 common access sys_access compat_sys_access 39 + 34 common nice sys_nice sys_nice 40 + 36 common sync sys_sync sys_sync 41 + 37 common kill sys_kill sys_kill 42 + 38 common rename sys_rename compat_sys_rename 43 + 39 common mkdir sys_mkdir compat_sys_mkdir 44 + 40 common rmdir sys_rmdir compat_sys_rmdir 45 + 41 common dup sys_dup sys_dup 46 + 42 common pipe sys_pipe compat_sys_pipe 47 + 43 common times sys_times compat_sys_times 48 + 45 common brk sys_brk compat_sys_brk 49 + 46 32 setgid - compat_sys_s390_setgid16 50 + 47 32 getgid - compat_sys_s390_getgid16 51 + 48 common signal sys_signal compat_sys_signal 52 + 49 32 geteuid - compat_sys_s390_geteuid16 53 + 50 32 getegid - compat_sys_s390_getegid16 54 + 51 common acct sys_acct compat_sys_acct 55 + 52 common umount2 sys_umount compat_sys_umount 56 + 54 common ioctl sys_ioctl compat_sys_ioctl 57 + 55 common fcntl sys_fcntl compat_sys_fcntl 58 + 57 common setpgid sys_setpgid sys_setpgid 59 + 60 common umask sys_umask sys_umask 60 + 61 common chroot sys_chroot compat_sys_chroot 61 + 62 common ustat sys_ustat compat_sys_ustat 62 + 63 common dup2 sys_dup2 sys_dup2 63 + 64 common getppid sys_getppid sys_getppid 64 + 65 common getpgrp sys_getpgrp sys_getpgrp 65 + 66 common setsid sys_setsid sys_setsid 66 + 67 common sigaction sys_sigaction compat_sys_sigaction 67 + 70 32 setreuid - compat_sys_s390_setreuid16 68 + 71 32 setregid - compat_sys_s390_setregid16 69 + 72 common sigsuspend sys_sigsuspend compat_sys_sigsuspend 70 + 73 common sigpending sys_sigpending compat_sys_sigpending 71 + 74 common sethostname sys_sethostname compat_sys_sethostname 72 + 75 common setrlimit sys_setrlimit compat_sys_setrlimit 73 + 76 32 getrlimit - compat_sys_old_getrlimit 74 + 77 common getrusage sys_getrusage compat_sys_getrusage 75 + 78 common gettimeofday sys_gettimeofday compat_sys_gettimeofday 76 + 79 common settimeofday sys_settimeofday compat_sys_settimeofday 77 + 80 32 getgroups - compat_sys_s390_getgroups16 78 + 81 32 setgroups - compat_sys_s390_setgroups16 79 + 83 common symlink sys_symlink compat_sys_symlink 80 + 85 common readlink sys_readlink compat_sys_readlink 81 + 86 common uselib sys_uselib compat_sys_uselib 82 + 87 common swapon sys_swapon compat_sys_swapon 83 + 88 common reboot sys_reboot compat_sys_reboot 84 + 89 common readdir - compat_sys_old_readdir 85 + 90 common mmap sys_old_mmap compat_sys_s390_old_mmap 86 + 91 common munmap sys_munmap compat_sys_munmap 87 + 92 common truncate sys_truncate compat_sys_truncate 88 + 93 common ftruncate sys_ftruncate compat_sys_ftruncate 89 + 94 common fchmod sys_fchmod sys_fchmod 90 + 95 32 fchown - compat_sys_s390_fchown16 91 + 96 common getpriority sys_getpriority sys_getpriority 92 + 97 common setpriority sys_setpriority sys_setpriority 93 + 99 common statfs sys_statfs compat_sys_statfs 94 + 100 common fstatfs sys_fstatfs compat_sys_fstatfs 95 + 101 32 ioperm - - 96 + 102 common socketcall sys_socketcall compat_sys_socketcall 97 + 103 common syslog sys_syslog compat_sys_syslog 98 + 104 common setitimer sys_setitimer compat_sys_setitimer 99 + 105 common getitimer sys_getitimer compat_sys_getitimer 100 + 106 common stat sys_newstat compat_sys_newstat 101 + 107 common lstat sys_newlstat compat_sys_newlstat 102 + 108 common fstat sys_newfstat compat_sys_newfstat 103 + 110 common lookup_dcookie sys_lookup_dcookie compat_sys_lookup_dcookie 104 + 111 common vhangup sys_vhangup sys_vhangup 105 + 112 common idle - - 106 + 114 common wait4 sys_wait4 compat_sys_wait4 107 + 115 common swapoff sys_swapoff compat_sys_swapoff 108 + 116 common sysinfo sys_sysinfo compat_sys_sysinfo 109 + 117 common ipc sys_s390_ipc compat_sys_s390_ipc 110 + 118 common fsync sys_fsync sys_fsync 111 + 119 common sigreturn sys_sigreturn compat_sys_sigreturn 112 + 120 common clone sys_clone compat_sys_clone 113 + 121 common setdomainname sys_setdomainname compat_sys_setdomainname 114 + 122 common uname sys_newuname compat_sys_newuname 115 + 124 common adjtimex sys_adjtimex compat_sys_adjtimex 116 + 125 common mprotect sys_mprotect compat_sys_mprotect 117 + 126 common sigprocmask sys_sigprocmask compat_sys_sigprocmask 118 + 127 common create_module - - 119 + 128 common init_module sys_init_module compat_sys_init_module 120 + 129 common delete_module sys_delete_module compat_sys_delete_module 121 + 130 common get_kernel_syms - - 122 + 131 common quotactl sys_quotactl compat_sys_quotactl 123 + 132 common getpgid sys_getpgid sys_getpgid 124 + 133 common fchdir sys_fchdir sys_fchdir 125 + 134 common bdflush sys_bdflush compat_sys_bdflush 126 + 135 common sysfs sys_sysfs compat_sys_sysfs 127 + 136 common personality sys_s390_personality sys_s390_personality 128 + 137 common afs_syscall - - 129 + 138 32 setfsuid - compat_sys_s390_setfsuid16 130 + 139 32 setfsgid - compat_sys_s390_setfsgid16 131 + 140 32 _llseek - compat_sys_llseek 132 + 141 common getdents sys_getdents compat_sys_getdents 133 + 142 32 _newselect - compat_sys_select 134 + 142 64 select sys_select - 135 + 143 common flock sys_flock sys_flock 136 + 144 common msync sys_msync compat_sys_msync 137 + 145 common readv sys_readv compat_sys_readv 138 + 146 common writev sys_writev compat_sys_writev 139 + 147 common getsid sys_getsid sys_getsid 140 + 148 common fdatasync sys_fdatasync sys_fdatasync 141 + 149 common _sysctl sys_sysctl compat_sys_sysctl 142 + 150 common mlock sys_mlock compat_sys_mlock 143 + 151 common munlock sys_munlock compat_sys_munlock 144 + 152 common mlockall sys_mlockall sys_mlockall 145 + 153 common munlockall sys_munlockall sys_munlockall 146 + 154 common sched_setparam sys_sched_setparam compat_sys_sched_setparam 147 + 155 common sched_getparam sys_sched_getparam compat_sys_sched_getparam 148 + 156 common sched_setscheduler sys_sched_setscheduler compat_sys_sched_setscheduler 149 + 157 common sched_getscheduler sys_sched_getscheduler sys_sched_getscheduler 150 + 158 common sched_yield sys_sched_yield sys_sched_yield 151 + 159 common sched_get_priority_max sys_sched_get_priority_max sys_sched_get_priority_max 152 + 160 common sched_get_priority_min sys_sched_get_priority_min sys_sched_get_priority_min 153 + 161 common sched_rr_get_interval sys_sched_rr_get_interval compat_sys_sched_rr_get_interval 154 + 162 common nanosleep sys_nanosleep compat_sys_nanosleep 155 + 163 common mremap sys_mremap compat_sys_mremap 156 + 164 32 setresuid - compat_sys_s390_setresuid16 157 + 165 32 getresuid - compat_sys_s390_getresuid16 158 + 167 common query_module - - 159 + 168 common poll sys_poll compat_sys_poll 160 + 169 common nfsservctl - - 161 + 170 32 setresgid - compat_sys_s390_setresgid16 162 + 171 32 getresgid - compat_sys_s390_getresgid16 163 + 172 common prctl sys_prctl compat_sys_prctl 164 + 173 common rt_sigreturn sys_rt_sigreturn compat_sys_rt_sigreturn 165 + 174 common rt_sigaction sys_rt_sigaction compat_sys_rt_sigaction 166 + 175 common rt_sigprocmask sys_rt_sigprocmask compat_sys_rt_sigprocmask 167 + 176 common rt_sigpending sys_rt_sigpending compat_sys_rt_sigpending 168 + 177 common rt_sigtimedwait sys_rt_sigtimedwait compat_sys_rt_sigtimedwait 169 + 178 common rt_sigqueueinfo sys_rt_sigqueueinfo compat_sys_rt_sigqueueinfo 170 + 179 common rt_sigsuspend sys_rt_sigsuspend compat_sys_rt_sigsuspend 171 + 180 common pread64 sys_pread64 compat_sys_s390_pread64 172 + 181 common pwrite64 sys_pwrite64 compat_sys_s390_pwrite64 173 + 182 32 chown - compat_sys_s390_chown16 174 + 183 common getcwd sys_getcwd compat_sys_getcwd 175 + 184 common capget sys_capget compat_sys_capget 176 + 185 common capset sys_capset compat_sys_capset 177 + 186 common sigaltstack sys_sigaltstack compat_sys_sigaltstack 178 + 187 common sendfile sys_sendfile64 compat_sys_sendfile 179 + 188 common getpmsg - - 180 + 189 common putpmsg - - 181 + 190 common vfork sys_vfork sys_vfork 182 + 191 32 ugetrlimit - compat_sys_getrlimit 183 + 191 64 getrlimit sys_getrlimit - 184 + 192 32 mmap2 - compat_sys_s390_mmap2 185 + 193 32 truncate64 - compat_sys_s390_truncate64 186 + 194 32 ftruncate64 - compat_sys_s390_ftruncate64 187 + 195 32 stat64 - compat_sys_s390_stat64 188 + 196 32 lstat64 - compat_sys_s390_lstat64 189 + 197 32 fstat64 - compat_sys_s390_fstat64 190 + 198 32 lchown32 - compat_sys_lchown 191 + 198 64 lchown sys_lchown - 192 + 199 32 getuid32 - sys_getuid 193 + 199 64 getuid sys_getuid - 194 + 200 32 getgid32 - sys_getgid 195 + 200 64 getgid sys_getgid - 196 + 201 32 geteuid32 - sys_geteuid 197 + 201 64 geteuid sys_geteuid - 198 + 202 32 getegid32 - sys_getegid 199 + 202 64 getegid sys_getegid - 200 + 203 32 setreuid32 - sys_setreuid 201 + 203 64 setreuid sys_setreuid - 202 + 204 32 setregid32 - sys_setregid 203 + 204 64 setregid sys_setregid - 204 + 205 32 getgroups32 - compat_sys_getgroups 205 + 205 64 getgroups sys_getgroups - 206 + 206 32 setgroups32 - compat_sys_setgroups 207 + 206 64 setgroups sys_setgroups - 208 + 207 32 fchown32 - sys_fchown 209 + 207 64 fchown sys_fchown - 210 + 208 32 setresuid32 - sys_setresuid 211 + 208 64 setresuid sys_setresuid - 212 + 209 32 getresuid32 - compat_sys_getresuid 213 + 209 64 getresuid sys_getresuid - 214 + 210 32 setresgid32 - sys_setresgid 215 + 210 64 setresgid sys_setresgid - 216 + 211 32 getresgid32 - compat_sys_getresgid 217 + 211 64 getresgid sys_getresgid - 218 + 212 32 chown32 - compat_sys_chown 219 + 212 64 chown sys_chown - 220 + 213 32 setuid32 - sys_setuid 221 + 213 64 setuid sys_setuid - 222 + 214 32 setgid32 - sys_setgid 223 + 214 64 setgid sys_setgid - 224 + 215 32 setfsuid32 - sys_setfsuid 225 + 215 64 setfsuid sys_setfsuid - 226 + 216 32 setfsgid32 - sys_setfsgid 227 + 216 64 setfsgid sys_setfsgid - 228 + 217 common pivot_root sys_pivot_root compat_sys_pivot_root 229 + 218 common mincore sys_mincore compat_sys_mincore 230 + 219 common madvise sys_madvise compat_sys_madvise 231 + 220 common getdents64 sys_getdents64 compat_sys_getdents64 232 + 221 32 fcntl64 - compat_sys_fcntl64 233 + 222 common readahead sys_readahead compat_sys_s390_readahead 234 + 223 32 sendfile64 - compat_sys_sendfile64 235 + 224 common setxattr sys_setxattr compat_sys_setxattr 236 + 225 common lsetxattr sys_lsetxattr compat_sys_lsetxattr 237 + 226 common fsetxattr sys_fsetxattr compat_sys_fsetxattr 238 + 227 common getxattr sys_getxattr compat_sys_getxattr 239 + 228 common lgetxattr sys_lgetxattr compat_sys_lgetxattr 240 + 229 common fgetxattr sys_fgetxattr compat_sys_fgetxattr 241 + 230 common listxattr sys_listxattr compat_sys_listxattr 242 + 231 common llistxattr sys_llistxattr compat_sys_llistxattr 243 + 232 common flistxattr sys_flistxattr compat_sys_flistxattr 244 + 233 common removexattr sys_removexattr compat_sys_removexattr 245 + 234 common lremovexattr sys_lremovexattr compat_sys_lremovexattr 246 + 235 common fremovexattr sys_fremovexattr compat_sys_fremovexattr 247 + 236 common gettid sys_gettid sys_gettid 248 + 237 common tkill sys_tkill sys_tkill 249 + 238 common futex sys_futex compat_sys_futex 250 + 239 common sched_setaffinity sys_sched_setaffinity compat_sys_sched_setaffinity 251 + 240 common sched_getaffinity sys_sched_getaffinity compat_sys_sched_getaffinity 252 + 241 common tgkill sys_tgkill sys_tgkill 253 + 243 common io_setup sys_io_setup compat_sys_io_setup 254 + 244 common io_destroy sys_io_destroy compat_sys_io_destroy 255 + 245 common io_getevents sys_io_getevents compat_sys_io_getevents 256 + 246 common io_submit sys_io_submit compat_sys_io_submit 257 + 247 common io_cancel sys_io_cancel compat_sys_io_cancel 258 + 248 common exit_group sys_exit_group sys_exit_group 259 + 249 common epoll_create sys_epoll_create sys_epoll_create 260 + 250 common epoll_ctl sys_epoll_ctl compat_sys_epoll_ctl 261 + 251 common epoll_wait sys_epoll_wait compat_sys_epoll_wait 262 + 252 common set_tid_address sys_set_tid_address compat_sys_set_tid_address 263 + 253 common fadvise64 sys_fadvise64_64 compat_sys_s390_fadvise64 264 + 254 common timer_create sys_timer_create compat_sys_timer_create 265 + 255 common timer_settime sys_timer_settime compat_sys_timer_settime 266 + 256 common timer_gettime sys_timer_gettime compat_sys_timer_gettime 267 + 257 common timer_getoverrun sys_timer_getoverrun sys_timer_getoverrun 268 + 258 common timer_delete sys_timer_delete sys_timer_delete 269 + 259 common clock_settime sys_clock_settime compat_sys_clock_settime 270 + 260 common clock_gettime sys_clock_gettime compat_sys_clock_gettime 271 + 261 common clock_getres sys_clock_getres compat_sys_clock_getres 272 + 262 common clock_nanosleep sys_clock_nanosleep compat_sys_clock_nanosleep 273 + 264 32 fadvise64_64 - compat_sys_s390_fadvise64_64 274 + 265 common statfs64 sys_statfs64 compat_sys_statfs64 275 + 266 common fstatfs64 sys_fstatfs64 compat_sys_fstatfs64 276 + 267 common remap_file_pages sys_remap_file_pages compat_sys_remap_file_pages 277 + 268 common mbind sys_mbind compat_sys_mbind 278 + 269 common get_mempolicy sys_get_mempolicy compat_sys_get_mempolicy 279 + 270 common set_mempolicy sys_set_mempolicy compat_sys_set_mempolicy 280 + 271 common mq_open sys_mq_open compat_sys_mq_open 281 + 272 common mq_unlink sys_mq_unlink compat_sys_mq_unlink 282 + 273 common mq_timedsend sys_mq_timedsend compat_sys_mq_timedsend 283 + 274 common mq_timedreceive sys_mq_timedreceive compat_sys_mq_timedreceive 284 + 275 common mq_notify sys_mq_notify compat_sys_mq_notify 285 + 276 common mq_getsetattr sys_mq_getsetattr compat_sys_mq_getsetattr 286 + 277 common kexec_load sys_kexec_load compat_sys_kexec_load 287 + 278 common add_key sys_add_key compat_sys_add_key 288 + 279 common request_key sys_request_key compat_sys_request_key 289 + 280 common keyctl sys_keyctl compat_sys_keyctl 290 + 281 common waitid sys_waitid compat_sys_waitid 291 + 282 common ioprio_set sys_ioprio_set sys_ioprio_set 292 + 283 common ioprio_get sys_ioprio_get sys_ioprio_get 293 + 284 common inotify_init sys_inotify_init sys_inotify_init 294 + 285 common inotify_add_watch sys_inotify_add_watch compat_sys_inotify_add_watch 295 + 286 common inotify_rm_watch sys_inotify_rm_watch sys_inotify_rm_watch 296 + 287 common migrate_pages sys_migrate_pages compat_sys_migrate_pages 297 + 288 common openat sys_openat compat_sys_openat 298 + 289 common mkdirat sys_mkdirat compat_sys_mkdirat 299 + 290 common mknodat sys_mknodat compat_sys_mknodat 300 + 291 common fchownat sys_fchownat compat_sys_fchownat 301 + 292 common futimesat sys_futimesat compat_sys_futimesat 302 + 293 32 fstatat64 - compat_sys_s390_fstatat64 303 + 293 64 newfstatat sys_newfstatat - 304 + 294 common unlinkat sys_unlinkat compat_sys_unlinkat 305 + 295 common renameat sys_renameat compat_sys_renameat 306 + 296 common linkat sys_linkat compat_sys_linkat 307 + 297 common symlinkat sys_symlinkat compat_sys_symlinkat 308 + 298 common readlinkat sys_readlinkat compat_sys_readlinkat 309 + 299 common fchmodat sys_fchmodat compat_sys_fchmodat 310 + 300 common faccessat sys_faccessat compat_sys_faccessat 311 + 301 common pselect6 sys_pselect6 compat_sys_pselect6 312 + 302 common ppoll sys_ppoll compat_sys_ppoll 313 + 303 common unshare sys_unshare compat_sys_unshare 314 + 304 common set_robust_list sys_set_robust_list compat_sys_set_robust_list 315 + 305 common get_robust_list sys_get_robust_list compat_sys_get_robust_list 316 + 306 common splice sys_splice compat_sys_splice 317 + 307 common sync_file_range sys_sync_file_range compat_sys_s390_sync_file_range 318 + 308 common tee sys_tee compat_sys_tee 319 + 309 common vmsplice sys_vmsplice compat_sys_vmsplice 320 + 310 common move_pages sys_move_pages compat_sys_move_pages 321 + 311 common getcpu sys_getcpu compat_sys_getcpu 322 + 312 common epoll_pwait sys_epoll_pwait compat_sys_epoll_pwait 323 + 313 common utimes sys_utimes compat_sys_utimes 324 + 314 common fallocate sys_fallocate compat_sys_s390_fallocate 325 + 315 common utimensat sys_utimensat compat_sys_utimensat 326 + 316 common signalfd sys_signalfd compat_sys_signalfd 327 + 317 common timerfd - - 328 + 318 common eventfd sys_eventfd sys_eventfd 329 + 319 common timerfd_create sys_timerfd_create sys_timerfd_create 330 + 320 common timerfd_settime sys_timerfd_settime compat_sys_timerfd_settime 331 + 321 common timerfd_gettime sys_timerfd_gettime compat_sys_timerfd_gettime 332 + 322 common signalfd4 sys_signalfd4 compat_sys_signalfd4 333 + 323 common eventfd2 sys_eventfd2 sys_eventfd2 334 + 324 common inotify_init1 sys_inotify_init1 sys_inotify_init1 335 + 325 common pipe2 sys_pipe2 compat_sys_pipe2 336 + 326 common dup3 sys_dup3 sys_dup3 337 + 327 common epoll_create1 sys_epoll_create1 sys_epoll_create1 338 + 328 common preadv sys_preadv compat_sys_preadv 339 + 329 common pwritev sys_pwritev compat_sys_pwritev 340 + 330 common rt_tgsigqueueinfo sys_rt_tgsigqueueinfo compat_sys_rt_tgsigqueueinfo 341 + 331 common perf_event_open sys_perf_event_open compat_sys_perf_event_open 342 + 332 common fanotify_init sys_fanotify_init sys_fanotify_init 343 + 333 common fanotify_mark sys_fanotify_mark compat_sys_fanotify_mark 344 + 334 common prlimit64 sys_prlimit64 compat_sys_prlimit64 345 + 335 common name_to_handle_at sys_name_to_handle_at compat_sys_name_to_handle_at 346 + 336 common open_by_handle_at sys_open_by_handle_at compat_sys_open_by_handle_at 347 + 337 common clock_adjtime sys_clock_adjtime compat_sys_clock_adjtime 348 + 338 common syncfs sys_syncfs sys_syncfs 349 + 339 common setns sys_setns sys_setns 350 + 340 common process_vm_readv sys_process_vm_readv compat_sys_process_vm_readv 351 + 341 common process_vm_writev sys_process_vm_writev compat_sys_process_vm_writev 352 + 342 common s390_runtime_instr sys_s390_runtime_instr sys_s390_runtime_instr 353 + 343 common kcmp sys_kcmp compat_sys_kcmp 354 + 344 common finit_module sys_finit_module compat_sys_finit_module 355 + 345 common sched_setattr sys_sched_setattr compat_sys_sched_setattr 356 + 346 common sched_getattr sys_sched_getattr compat_sys_sched_getattr 357 + 347 common renameat2 sys_renameat2 compat_sys_renameat2 358 + 348 common seccomp sys_seccomp compat_sys_seccomp 359 + 349 common getrandom sys_getrandom compat_sys_getrandom 360 + 350 common memfd_create sys_memfd_create compat_sys_memfd_create 361 + 351 common bpf sys_bpf compat_sys_bpf 362 + 352 common s390_pci_mmio_write sys_s390_pci_mmio_write compat_sys_s390_pci_mmio_write 363 + 353 common s390_pci_mmio_read sys_s390_pci_mmio_read compat_sys_s390_pci_mmio_read 364 + 354 common execveat sys_execveat compat_sys_execveat 365 + 355 common userfaultfd sys_userfaultfd sys_userfaultfd 366 + 356 common membarrier sys_membarrier sys_membarrier 367 + 357 common recvmmsg sys_recvmmsg compat_sys_recvmmsg 368 + 358 common sendmmsg sys_sendmmsg compat_sys_sendmmsg 369 + 359 common socket sys_socket sys_socket 370 + 360 common socketpair sys_socketpair compat_sys_socketpair 371 + 361 common bind sys_bind compat_sys_bind 372 + 362 common connect sys_connect compat_sys_connect 373 + 363 common listen sys_listen sys_listen 374 + 364 common accept4 sys_accept4 compat_sys_accept4 375 + 365 common getsockopt sys_getsockopt compat_sys_getsockopt 376 + 366 common setsockopt sys_setsockopt compat_sys_setsockopt 377 + 367 common getsockname sys_getsockname compat_sys_getsockname 378 + 368 common getpeername sys_getpeername compat_sys_getpeername 379 + 369 common sendto sys_sendto compat_sys_sendto 380 + 370 common sendmsg sys_sendmsg compat_sys_sendmsg 381 + 371 common recvfrom sys_recvfrom compat_sys_recvfrom 382 + 372 common recvmsg sys_recvmsg compat_sys_recvmsg 383 + 373 common shutdown sys_shutdown sys_shutdown 384 + 374 common mlock2 sys_mlock2 compat_sys_mlock2 385 + 375 common copy_file_range sys_copy_file_range compat_sys_copy_file_range 386 + 376 common preadv2 sys_preadv2 compat_sys_preadv2 387 + 377 common pwritev2 sys_pwritev2 compat_sys_pwritev2 388 + 378 common s390_guarded_storage sys_s390_guarded_storage compat_sys_s390_guarded_storage 389 + 379 common statx sys_statx compat_sys_statx 390 + 380 common s390_sthyi sys_s390_sthyi compat_sys_s390_sthyi
+232
arch/s390/kernel/syscalls/syscalltbl
··· 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 + # 14 + SYSCALL_TBL="" 15 + 16 + 17 + create_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 + 84 + generate_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 + 98 + EoHEADER 99 + grep -Ev '^(#|[[:blank:]]*$)' $SYSCALL_TBL \ 100 + |sort -k1 -n \ 101 + |create_syscall_table_entries 102 + } 103 + 104 + create_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 + 113 + normalize_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 + 121 + generate_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 + 142 + EoHEADER 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} */ 151 + EoFOOTER 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 + 165 + generate_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 */ 181 + EoHEADER 182 + } 183 + 184 + 185 + # 186 + # Parse command line arguments 187 + # 188 + do_syscall_header="" 189 + do_syscall_table="" 190 + do_syscall_nr="" 191 + output_file="" 192 + abi_list="common,64" 193 + filename="" 194 + while 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 226 + done 227 + 228 + test "$do_syscall_header" && generate_syscall_header "$abi_list" "$filename" 229 + test "$do_syscall_table" && generate_syscall_table 230 + test "$do_syscall_nr" && generate_syscall_nr "$abi_list" 231 + 232 + exit 0
+3
arch/s390/kernel/vdso32/Makefile
··· 10 10 targets := $(obj-vdso32) vdso32.so vdso32.so.dbg 11 11 obj-vdso32 := $(addprefix $(obj)/, $(obj-vdso32)) 12 12 13 + KBUILD_AFLAGS += -DBUILD_VDSO 14 + KBUILD_CFLAGS += -DBUILD_VDSO 15 + 13 16 KBUILD_AFLAGS_31 := $(filter-out -m64,$(KBUILD_AFLAGS)) 14 17 KBUILD_AFLAGS_31 += -m31 -s 15 18
+3 -2
arch/s390/kernel/vdso32/clock_getres.S
··· 9 9 #include <asm/vdso.h> 10 10 #include <asm/asm-offsets.h> 11 11 #include <asm/unistd.h> 12 + #include <asm/dwarf.h> 12 13 13 14 .text 14 15 .align 4 15 16 .globl __kernel_clock_getres 16 17 .type __kernel_clock_getres,@function 17 18 __kernel_clock_getres: 18 - .cfi_startproc 19 + CFI_STARTPROC 19 20 basr %r1,0 20 21 la %r1,4f-.(%r1) 21 22 chi %r2,__CLOCK_REALTIME ··· 38 37 3: lhi %r1,__NR_clock_getres /* fallback to svc */ 39 38 svc 0 40 39 br %r14 40 + CFI_ENDPROC 41 41 4: .long __CLOCK_REALTIME_RES 42 42 5: .long __CLOCK_COARSE_RES 43 - .cfi_endproc 44 43 .size __kernel_clock_getres,.-__kernel_clock_getres
+15 -2
arch/s390/kernel/vdso32/clock_gettime.S
··· 9 9 #include <asm/vdso.h> 10 10 #include <asm/asm-offsets.h> 11 11 #include <asm/unistd.h> 12 + #include <asm/dwarf.h> 12 13 13 14 .text 14 15 .align 4 15 16 .globl __kernel_clock_gettime 16 17 .type __kernel_clock_gettime,@function 17 18 __kernel_clock_gettime: 18 - .cfi_startproc 19 + CFI_STARTPROC 19 20 ahi %r15,-16 21 + CFI_DEF_CFA_OFFSET 176 22 + CFI_VAL_OFFSET 15, -160 20 23 basr %r5,0 21 24 0: al %r5,21f-0b(%r5) /* get &_vdso_data */ 22 25 chi %r2,__CLOCK_REALTIME_COARSE ··· 72 69 st %r1,4(%r3) /* store tp->tv_nsec */ 73 70 lhi %r2,0 74 71 ahi %r15,16 72 + CFI_DEF_CFA_OFFSET 160 73 + CFI_RESTORE 15 75 74 br %r14 76 75 77 76 /* CLOCK_MONOTONIC_COARSE */ 77 + CFI_DEF_CFA_OFFSET 176 78 + CFI_VAL_OFFSET 15, -160 78 79 9: l %r4,__VDSO_UPD_COUNT+4(%r5) /* load update counter */ 79 80 tml %r4,0x0001 /* pending update ? loop */ 80 81 jnz 9b ··· 158 151 st %r1,4(%r3) /* store tp->tv_nsec */ 159 152 lhi %r2,0 160 153 ahi %r15,16 154 + CFI_DEF_CFA_OFFSET 160 155 + CFI_RESTORE 15 161 156 br %r14 162 157 163 158 /* Fallback to system call */ 159 + CFI_DEF_CFA_OFFSET 176 160 + CFI_VAL_OFFSET 15, -160 164 161 19: lhi %r1,__NR_clock_gettime 165 162 svc 0 166 163 ahi %r15,16 164 + CFI_DEF_CFA_OFFSET 160 165 + CFI_RESTORE 15 167 166 br %r14 167 + CFI_ENDPROC 168 168 169 169 20: .long 1000000000 170 170 21: .long _vdso_data - 0b 171 - .cfi_endproc 172 171 .size __kernel_clock_gettime,.-__kernel_clock_gettime
+3 -2
arch/s390/kernel/vdso32/getcpu.S
··· 8 8 */ 9 9 #include <asm/vdso.h> 10 10 #include <asm/asm-offsets.h> 11 + #include <asm/dwarf.h> 11 12 12 13 .text 13 14 .align 4 14 15 .globl __kernel_getcpu 15 16 .type __kernel_getcpu,@function 16 17 __kernel_getcpu: 17 - .cfi_startproc 18 + CFI_STARTPROC 18 19 la %r4,0 19 20 sacf 256 20 21 l %r5,__VDSO_CPU_NR(%r4) ··· 29 28 st %r4,0(%r3) 30 29 3: lhi %r2,0 31 30 br %r14 32 - .cfi_endproc 31 + CFI_ENDPROC 33 32 .size __kernel_getcpu,.-__kernel_getcpu
+7 -2
arch/s390/kernel/vdso32/gettimeofday.S
··· 9 9 #include <asm/vdso.h> 10 10 #include <asm/asm-offsets.h> 11 11 #include <asm/unistd.h> 12 + #include <asm/dwarf.h> 12 13 13 14 .text 14 15 .align 4 15 16 .globl __kernel_gettimeofday 16 17 .type __kernel_gettimeofday,@function 17 18 __kernel_gettimeofday: 18 - .cfi_startproc 19 + CFI_STARTPROC 19 20 ahi %r15,-16 21 + CFI_ADJUST_CFA_OFFSET 16 22 + CFI_VAL_OFFSET 15, -160 20 23 basr %r5,0 21 24 0: al %r5,13f-0b(%r5) /* get &_vdso_data */ 22 25 1: ltr %r3,%r3 /* check if tz is NULL */ ··· 92 89 st %r0,4(%r2) /* store tv->tv_usec */ 93 90 10: slr %r2,%r2 94 91 ahi %r15,16 92 + CFI_ADJUST_CFA_OFFSET -16 93 + CFI_RESTORE 15 95 94 br %r14 95 + CFI_ENDPROC 96 96 11: .long 1000000000 97 97 12: .long 274877907 98 98 13: .long _vdso_data - 0b 99 - .cfi_endproc 100 99 .size __kernel_gettimeofday,.-__kernel_gettimeofday
+3
arch/s390/kernel/vdso64/Makefile
··· 10 10 targets := $(obj-vdso64) vdso64.so vdso64.so.dbg 11 11 obj-vdso64 := $(addprefix $(obj)/, $(obj-vdso64)) 12 12 13 + KBUILD_AFLAGS += -DBUILD_VDSO 14 + KBUILD_CFLAGS += -DBUILD_VDSO 15 + 13 16 KBUILD_AFLAGS_64 := $(filter-out -m64,$(KBUILD_AFLAGS)) 14 17 KBUILD_AFLAGS_64 += -m64 -s 15 18
+3 -2
arch/s390/kernel/vdso64/clock_getres.S
··· 9 9 #include <asm/vdso.h> 10 10 #include <asm/asm-offsets.h> 11 11 #include <asm/unistd.h> 12 + #include <asm/dwarf.h> 12 13 13 14 .text 14 15 .align 4 15 16 .globl __kernel_clock_getres 16 17 .type __kernel_clock_getres,@function 17 18 __kernel_clock_getres: 18 - .cfi_startproc 19 + CFI_STARTPROC 19 20 larl %r1,4f 20 21 cghi %r2,__CLOCK_REALTIME_COARSE 21 22 je 0f ··· 44 43 2: lghi %r1,__NR_clock_getres /* fallback to svc */ 45 44 svc 0 46 45 br %r14 46 + CFI_ENDPROC 47 47 3: .quad __CLOCK_REALTIME_RES 48 48 4: .quad __CLOCK_COARSE_RES 49 - .cfi_endproc 50 49 .size __kernel_clock_getres,.-__kernel_clock_getres
+19 -2
arch/s390/kernel/vdso64/clock_gettime.S
··· 9 9 #include <asm/vdso.h> 10 10 #include <asm/asm-offsets.h> 11 11 #include <asm/unistd.h> 12 + #include <asm/dwarf.h> 12 13 13 14 .text 14 15 .align 4 15 16 .globl __kernel_clock_gettime 16 17 .type __kernel_clock_gettime,@function 17 18 __kernel_clock_gettime: 18 - .cfi_startproc 19 + CFI_STARTPROC 19 20 aghi %r15,-16 21 + CFI_DEF_CFA_OFFSET 176 22 + CFI_VAL_OFFSET 15, -160 20 23 larl %r5,_vdso_data 21 24 cghi %r2,__CLOCK_REALTIME_COARSE 22 25 je 4f ··· 56 53 stg %r1,8(%r3) /* store tp->tv_nsec */ 57 54 lghi %r2,0 58 55 aghi %r15,16 56 + CFI_DEF_CFA_OFFSET 160 57 + CFI_RESTORE 15 59 58 br %r14 60 59 61 60 /* CLOCK_MONOTONIC_COARSE */ 61 + CFI_DEF_CFA_OFFSET 176 62 + CFI_VAL_OFFSET 15, -160 62 63 3: lg %r4,__VDSO_UPD_COUNT(%r5) /* load update counter */ 63 64 tmll %r4,0x0001 /* pending update ? loop */ 64 65 jnz 3b ··· 115 108 stg %r1,8(%r3) /* store tp->tv_nsec */ 116 109 lghi %r2,0 117 110 aghi %r15,16 111 + CFI_DEF_CFA_OFFSET 160 112 + CFI_RESTORE 15 118 113 br %r14 119 114 120 115 /* CPUCLOCK_VIRT for this thread */ 116 + CFI_DEF_CFA_OFFSET 176 117 + CFI_VAL_OFFSET 15, -160 121 118 9: lghi %r4,0 122 119 icm %r0,15,__VDSO_ECTG_OK(%r5) 123 120 jz 12f ··· 142 131 stg %r4,8(%r3) 143 132 lghi %r2,0 144 133 aghi %r15,16 134 + CFI_DEF_CFA_OFFSET 160 135 + CFI_RESTORE 15 145 136 br %r14 146 137 147 138 /* Fallback to system call */ 139 + CFI_DEF_CFA_OFFSET 176 140 + CFI_VAL_OFFSET 15, -160 148 141 12: lghi %r1,__NR_clock_gettime 149 142 svc 0 150 143 aghi %r15,16 144 + CFI_DEF_CFA_OFFSET 160 145 + CFI_RESTORE 15 151 146 br %r14 147 + CFI_ENDPROC 152 148 153 149 13: .quad 1000000000 154 150 14: .quad 19342813113834067 155 - .cfi_endproc 156 151 .size __kernel_clock_gettime,.-__kernel_clock_gettime
+3 -2
arch/s390/kernel/vdso64/getcpu.S
··· 8 8 */ 9 9 #include <asm/vdso.h> 10 10 #include <asm/asm-offsets.h> 11 + #include <asm/dwarf.h> 11 12 12 13 .text 13 14 .align 4 14 15 .globl __kernel_getcpu 15 16 .type __kernel_getcpu,@function 16 17 __kernel_getcpu: 17 - .cfi_startproc 18 + CFI_STARTPROC 18 19 la %r4,0 19 20 sacf 256 20 21 l %r5,__VDSO_CPU_NR(%r4) ··· 29 28 st %r4,0(%r3) 30 29 3: lghi %r2,0 31 30 br %r14 32 - .cfi_endproc 31 + CFI_ENDPROC 33 32 .size __kernel_getcpu,.-__kernel_getcpu
+7 -2
arch/s390/kernel/vdso64/gettimeofday.S
··· 9 9 #include <asm/vdso.h> 10 10 #include <asm/asm-offsets.h> 11 11 #include <asm/unistd.h> 12 + #include <asm/dwarf.h> 12 13 13 14 .text 14 15 .align 4 15 16 .globl __kernel_gettimeofday 16 17 .type __kernel_gettimeofday,@function 17 18 __kernel_gettimeofday: 18 - .cfi_startproc 19 + CFI_STARTPROC 19 20 aghi %r15,-16 21 + CFI_ADJUST_CFA_OFFSET 16 22 + CFI_VAL_OFFSET 15, -160 20 23 larl %r5,_vdso_data 21 24 0: ltgr %r3,%r3 /* check if tz is NULL */ 22 25 je 1f ··· 61 58 stg %r0,8(%r2) /* store tv->tv_usec */ 62 59 4: lghi %r2,0 63 60 aghi %r15,16 61 + CFI_ADJUST_CFA_OFFSET -16 62 + CFI_RESTORE 15 64 63 br %r14 64 + CFI_ENDPROC 65 65 5: .quad 1000000000 66 66 .long 274877907 67 - .cfi_endproc 68 67 .size __kernel_gettimeofday,.-__kernel_gettimeofday
+3
arch/s390/kernel/vmlinux.lds.S
··· 141 141 142 142 /* Sections to be discarded */ 143 143 DISCARDS 144 + /DISCARD/ : { 145 + *(.eh_frame) 146 + } 144 147 }
+1
arch/s390/tools/.gitignore
··· 1 1 gen_facilities 2 + gen_opcode_table
+17 -6
arch/s390/tools/Makefile
··· 3 3 # Makefile for s390 specific build tools 4 4 # 5 5 6 + kapi := arch/$(ARCH)/include/generated/asm 7 + kapi-hdrs-y := $(kapi)/facility-defs.h $(kapi)/dis-defs.h 8 + 9 + targets += $(addprefix ../../../,$(kapi-hdrs-y)) 10 + PHONY += kapi 11 + 12 + kapi: $(kapi-hdrs-y) 13 + 6 14 hostprogs-y += gen_facilities 7 15 hostprogs-y += gen_opcode_table 8 16 9 17 HOSTCFLAGS_gen_facilities.o += -Wall $(LINUXINCLUDE) 10 18 HOSTCFLAGS_gen_opcode_table.o += -Wall $(LINUXINCLUDE) 11 19 12 - define filechk_facilities.h 20 + # Ensure output directory exists 21 + _dummy := $(shell [ -d '$(kapi)' ] || mkdir -p '$(kapi)') 22 + 23 + define filechk_facility-defs.h 13 24 $(obj)/gen_facilities 14 25 endef 15 26 16 - define filechk_dis.h 27 + define filechk_dis-defs.h 17 28 ( $(obj)/gen_opcode_table < $(srctree)/arch/$(ARCH)/tools/opcodes.txt ) 18 29 endef 19 30 20 - include/generated/facilities.h: $(obj)/gen_facilities FORCE 21 - $(call filechk,facilities.h) 31 + $(kapi)/facility-defs.h: $(obj)/gen_facilities FORCE 32 + $(call filechk,facility-defs.h) 22 33 23 - include/generated/dis.h: $(obj)/gen_opcode_table FORCE 24 - $(call filechk,dis.h) 34 + $(kapi)/dis-defs.h: $(obj)/gen_opcode_table FORCE 35 + $(call filechk,dis-defs.h)
+2 -2
arch/s390/tools/gen_facilities.c
··· 128 128 129 129 int main(int argc, char **argv) 130 130 { 131 - printf("#ifndef __ASM_S390_FACILITIES__\n"); 132 - printf("#define __ASM_S390_FACILITIES__\n"); 131 + printf("#ifndef __ASM_S390_FACILITY_DEFS__\n"); 132 + printf("#define __ASM_S390_FACILITY_DEFS__\n"); 133 133 printf("/*\n"); 134 134 printf(" * DO NOT MODIFY.\n"); 135 135 printf(" *\n");
+2 -2
arch/s390/tools/gen_opcode_table.c
··· 321 321 struct gen_opcode *desc = &_desc; 322 322 323 323 read_instructions(desc); 324 - printf("#ifndef __S390_GENERATED_DIS_H__\n"); 325 - printf("#define __S390_GENERATED_DIS_H__\n"); 324 + printf("#ifndef __S390_GENERATED_DIS_DEFS_H__\n"); 325 + printf("#define __S390_GENERATED_DIS_DEFS_H__\n"); 326 326 printf("/*\n"); 327 327 printf(" * DO NOT MODIFY.\n"); 328 328 printf(" *\n");
-12
drivers/s390/block/dasd.c
··· 1393 1393 DBF_DEV_EVENT(DBF_ERR, device, "%s", 1394 1394 "device gone, retry"); 1395 1395 break; 1396 - case -EIO: 1397 - DBF_DEV_EVENT(DBF_ERR, device, "%s", 1398 - "I/O error, retry"); 1399 - break; 1400 1396 case -EINVAL: 1401 1397 /* 1402 1398 * device not valid so no I/O could be running ··· 1407 1411 "EINVAL, handle as terminated"); 1408 1412 /* fake rc to success */ 1409 1413 rc = 0; 1410 - break; 1411 - case -EBUSY: 1412 - DBF_DEV_EVENT(DBF_ERR, device, "%s", 1413 - "device busy, retry later"); 1414 1414 break; 1415 1415 default: 1416 1416 /* internal error 10 - unknown rc*/ ··· 1480 1488 case -EBUSY: 1481 1489 DBF_DEV_EVENT(DBF_WARNING, device, "%s", 1482 1490 "start_IO: device busy, retry later"); 1483 - break; 1484 - case -ETIMEDOUT: 1485 - DBF_DEV_EVENT(DBF_WARNING, device, "%s", 1486 - "start_IO: request timeout, retry later"); 1487 1491 break; 1488 1492 case -EACCES: 1489 1493 /* -EACCES indicates that the request used only a subset of the
+2 -5
drivers/s390/block/dasd_eckd.c
··· 5231 5231 struct dasd_ckd_path_group_entry *entry; 5232 5232 struct dasd_ckd_host_information *info; 5233 5233 char sysplex[9] = ""; 5234 - int rc, i, j; 5234 + int rc, i; 5235 5235 5236 5236 access = kzalloc(sizeof(*access), GFP_NOIO); 5237 5237 if (!access) { ··· 5251 5251 entry = (struct dasd_ckd_path_group_entry *) 5252 5252 (info->entry + i * info->entry_size); 5253 5253 /* PGID */ 5254 - seq_puts(m, "pgid "); 5255 - for (j = 0; j < 11; j++) 5256 - seq_printf(m, "%02x", entry->pgid[j]); 5257 - seq_putc(m, '\n'); 5254 + seq_printf(m, "pgid %*phN\n", 11, entry->pgid); 5258 5255 /* FLAGS */ 5259 5256 seq_printf(m, "status_flags %02x\n", entry->status_flags); 5260 5257 /* SYSPLEX NAME */
+2 -2
drivers/s390/char/sclp_early_core.c
··· 12 12 #include "sclp.h" 13 13 #include "sclp_rw.h" 14 14 15 - char sclp_early_sccb[PAGE_SIZE] __aligned(PAGE_SIZE) __section(data); 16 - int sclp_init_state __section(data) = sclp_init_state_uninitialized; 15 + char sclp_early_sccb[PAGE_SIZE] __aligned(PAGE_SIZE) __section(.data); 16 + int sclp_init_state __section(.data) = sclp_init_state_uninitialized; 17 17 18 18 void sclp_early_wait_irq(void) 19 19 {