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

Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 fixes from Thomas Gleixner:
"A set of fixes and updates for x86:

- Address a swiotlb regression which was caused by the recent DMA
rework and made driver fail because dma_direct_supported() returned
false

- Fix a signedness bug in the APIC ID validation which caused invalid
APIC IDs to be detected as valid thereby bloating the CPU possible
space.

- Fix inconsisten config dependcy/select magic for the MFD_CS5535
driver.

- Fix a corruption of the physical address space bits when encryption
has reduced the address space and late cpuinfo updates overwrite
the reduced bit information with the original value.

- Dominiks syscall rework which consolidates the architecture
specific syscall functions so all syscalls can be wrapped with the
same macros. This allows to switch x86/64 to struct pt_regs based
syscalls. Extend the clearing of user space controlled registers in
the entry patch to the lower registers"

* 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/apic: Fix signedness bug in APIC ID validity checks
x86/cpu: Prevent cpuinfo_x86::x86_phys_bits adjustment corruption
x86/olpc: Fix inconsistent MFD_CS5535 configuration
swiotlb: Use dma_direct_supported() for swiotlb_ops
syscalls/x86: Adapt syscall_wrapper.h to the new syscall stub naming convention
syscalls/core, syscalls/x86: Rename struct pt_regs-based sys_*() to __x64_sys_*()
syscalls/core, syscalls/x86: Clean up compat syscall stub naming convention
syscalls/core, syscalls/x86: Clean up syscall stub naming convention
syscalls/x86: Extend register clearing on syscall entry to lower registers
syscalls/x86: Unconditionally enable 'struct pt_regs' based syscalls on x86_64
syscalls/x86: Use 'struct pt_regs' based syscall calling for IA32_EMULATION and x32
syscalls/core: Prepare CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y for compat syscalls
syscalls/x86: Use 'struct pt_regs' based syscall calling convention for 64-bit syscalls
syscalls/core: Introduce CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
x86/syscalls: Don't pointlessly reload the system call number
x86/mm: Fix documentation of module mapping range with 4-level paging
x86/cpuid: Switch to 'static const' specifier

+1150 -802
+2 -2
Documentation/process/adding-syscalls.rst
··· 360 360 column to indicate that a 32-bit userspace program running on a 64-bit kernel 361 361 should hit the compat entry point:: 362 362 363 - 380 i386 xyzzy sys_xyzzy compat_sys_xyzzy 363 + 380 i386 xyzzy sys_xyzzy __ia32_compat_sys_xyzzy 364 364 365 365 Second, you need to figure out what should happen for the x32 ABI version of 366 366 the new system call. There's a choice here: the layout of the arguments ··· 373 373 374 374 333 64 xyzzy sys_xyzzy 375 375 ... 376 - 555 x32 xyzzy compat_sys_xyzzy 376 + 555 x32 xyzzy __x32_compat_sys_xyzzy 377 377 378 378 If no pointers are involved, then it is preferable to re-use the 64-bit system 379 379 call for the x32 ABI (and consequently the entry in
+1 -1
Documentation/x86/x86_64/mm.txt
··· 20 20 ffffffef00000000 - fffffffeffffffff (=64 GB) EFI region mapping space 21 21 ... unused hole ... 22 22 ffffffff80000000 - ffffffff9fffffff (=512 MB) kernel text mapping, from phys 0 23 - ffffffffa0000000 - [fixmap start] (~1526 MB) module mapping space (variable) 23 + ffffffffa0000000 - fffffffffeffffff (1520 MB) module mapping space 24 24 [fixmap start] - ffffffffff5fffff kernel-internal fixmap range 25 25 ffffffffff600000 - ffffffffff600fff (=4 kB) legacy vsyscall ABI 26 26 ffffffffffe00000 - ffffffffffffffff (=2 MB) unused hole
+2 -3
arch/x86/Kconfig
··· 29 29 select HAVE_ARCH_SOFT_DIRTY 30 30 select MODULES_USE_ELF_RELA 31 31 select X86_DEV_DMA_OPS 32 + select ARCH_HAS_SYSCALL_WRAPPER 32 33 33 34 # 34 35 # Arch settings ··· 2764 2763 2765 2764 config OLPC_XO1_SCI 2766 2765 bool "OLPC XO-1 SCI extras" 2767 - depends on OLPC && OLPC_XO1_PM 2766 + depends on OLPC && OLPC_XO1_PM && GPIO_CS5535=y 2768 2767 depends on INPUT=y 2769 2768 select POWER_SUPPLY 2770 - select GPIO_CS5535 2771 - select MFD_CORE 2772 2769 ---help--- 2773 2770 Add support for SCI-based features of the OLPC XO-1 laptop: 2774 2771 - EC-driven system wakeups
+2
arch/x86/entry/calling.h
··· 114 114 pushq %rsi /* pt_regs->si */ 115 115 .endif 116 116 pushq \rdx /* pt_regs->dx */ 117 + xorl %edx, %edx /* nospec dx */ 117 118 pushq %rcx /* pt_regs->cx */ 119 + xorl %ecx, %ecx /* nospec cx */ 118 120 pushq \rax /* pt_regs->ax */ 119 121 pushq %r8 /* pt_regs->r8 */ 120 122 xorl %r8d, %r8d /* nospec r8 */
+11 -9
arch/x86/entry/common.c
··· 266 266 } 267 267 268 268 #ifdef CONFIG_X86_64 269 - __visible void do_syscall_64(struct pt_regs *regs) 269 + __visible void do_syscall_64(unsigned long nr, struct pt_regs *regs) 270 270 { 271 - struct thread_info *ti = current_thread_info(); 272 - unsigned long nr = regs->orig_ax; 271 + struct thread_info *ti; 273 272 274 273 enter_from_user_mode(); 275 274 local_irq_enable(); 276 - 275 + ti = current_thread_info(); 277 276 if (READ_ONCE(ti->flags) & _TIF_WORK_SYSCALL_ENTRY) 278 277 nr = syscall_trace_enter(regs); 279 278 ··· 281 282 * table. The only functional difference is the x32 bit in 282 283 * regs->orig_ax, which changes the behavior of some syscalls. 283 284 */ 284 - if (likely((nr & __SYSCALL_MASK) < NR_syscalls)) { 285 - nr = array_index_nospec(nr & __SYSCALL_MASK, NR_syscalls); 286 - regs->ax = sys_call_table[nr]( 287 - regs->di, regs->si, regs->dx, 288 - regs->r10, regs->r8, regs->r9); 285 + nr &= __SYSCALL_MASK; 286 + if (likely(nr < NR_syscalls)) { 287 + nr = array_index_nospec(nr, NR_syscalls); 288 + regs->ax = sys_call_table[nr](regs); 289 289 } 290 290 291 291 syscall_return_slowpath(regs); ··· 319 321 320 322 if (likely(nr < IA32_NR_syscalls)) { 321 323 nr = array_index_nospec(nr, IA32_NR_syscalls); 324 + #ifdef CONFIG_IA32_EMULATION 325 + regs->ax = ia32_sys_call_table[nr](regs); 326 + #else 322 327 /* 323 328 * It's possible that a 32-bit syscall implementation 324 329 * takes a 64-bit parameter but nonetheless assumes that ··· 332 331 (unsigned int)regs->bx, (unsigned int)regs->cx, 333 332 (unsigned int)regs->dx, (unsigned int)regs->si, 334 333 (unsigned int)regs->di, (unsigned int)regs->bp); 334 + #endif /* CONFIG_IA32_EMULATION */ 335 335 } 336 336 337 337 syscall_return_slowpath(regs);
+2 -1
arch/x86/entry/entry_64.S
··· 233 233 TRACE_IRQS_OFF 234 234 235 235 /* IRQs are off. */ 236 - movq %rsp, %rdi 236 + movq %rax, %rdi 237 + movq %rsp, %rsi 237 238 call do_syscall_64 /* returns with IRQs disabled */ 238 239 239 240 TRACE_IRQS_IRETQ /* we're about to change IF */
+6
arch/x86/entry/entry_64_compat.S
··· 220 220 pushq %rax /* pt_regs->orig_ax */ 221 221 pushq %rdi /* pt_regs->di */ 222 222 pushq %rsi /* pt_regs->si */ 223 + xorl %esi, %esi /* nospec si */ 223 224 pushq %rdx /* pt_regs->dx */ 225 + xorl %edx, %edx /* nospec dx */ 224 226 pushq %rbp /* pt_regs->cx (stashed in bp) */ 227 + xorl %ecx, %ecx /* nospec cx */ 225 228 pushq $-ENOSYS /* pt_regs->ax */ 226 229 pushq $0 /* pt_regs->r8 = 0 */ 227 230 xorl %r8d, %r8d /* nospec r8 */ ··· 368 365 369 366 pushq (%rdi) /* pt_regs->di */ 370 367 pushq %rsi /* pt_regs->si */ 368 + xorl %esi, %esi /* nospec si */ 371 369 pushq %rdx /* pt_regs->dx */ 370 + xorl %edx, %edx /* nospec dx */ 372 371 pushq %rcx /* pt_regs->cx */ 372 + xorl %ecx, %ecx /* nospec cx */ 373 373 pushq $-ENOSYS /* pt_regs->ax */ 374 374 pushq $0 /* pt_regs->r8 = 0 */ 375 375 xorl %r8d, %r8d /* nospec r8 */
+12 -3
arch/x86/entry/syscall_32.c
··· 7 7 #include <asm/asm-offsets.h> 8 8 #include <asm/syscall.h> 9 9 10 - #define __SYSCALL_I386(nr, sym, qual) extern asmlinkage long sym(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) ; 10 + #ifdef CONFIG_IA32_EMULATION 11 + /* On X86_64, we use struct pt_regs * to pass parameters to syscalls */ 12 + #define __SYSCALL_I386(nr, sym, qual) extern asmlinkage long sym(const struct pt_regs *); 13 + 14 + /* this is a lie, but it does not hurt as sys_ni_syscall just returns -EINVAL */ 15 + extern asmlinkage long sys_ni_syscall(const struct pt_regs *); 16 + 17 + #else /* CONFIG_IA32_EMULATION */ 18 + #define __SYSCALL_I386(nr, sym, qual) extern asmlinkage long sym(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long); 19 + extern asmlinkage long sys_ni_syscall(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long); 20 + #endif /* CONFIG_IA32_EMULATION */ 21 + 11 22 #include <asm/syscalls_32.h> 12 23 #undef __SYSCALL_I386 13 24 14 25 #define __SYSCALL_I386(nr, sym, qual) [nr] = sym, 15 - 16 - extern asmlinkage long sys_ni_syscall(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long); 17 26 18 27 __visible const sys_call_ptr_t ia32_sys_call_table[__NR_syscall_compat_max+1] = { 19 28 /*
+3 -3
arch/x86/entry/syscall_64.c
··· 7 7 #include <asm/asm-offsets.h> 8 8 #include <asm/syscall.h> 9 9 10 - #define __SYSCALL_64(nr, sym, qual) extern asmlinkage long sym(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long); 10 + /* this is a lie, but it does not hurt as sys_ni_syscall just returns -EINVAL */ 11 + extern asmlinkage long sys_ni_syscall(const struct pt_regs *); 12 + #define __SYSCALL_64(nr, sym, qual) extern asmlinkage long sym(const struct pt_regs *); 11 13 #include <asm/syscalls_64.h> 12 14 #undef __SYSCALL_64 13 15 14 16 #define __SYSCALL_64(nr, sym, qual) [nr] = sym, 15 - 16 - extern long sys_ni_syscall(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long); 17 17 18 18 asmlinkage const sys_call_ptr_t sys_call_table[__NR_syscall_max+1] = { 19 19 /*
+364 -359
arch/x86/entry/syscalls/syscall_32.tbl
··· 4 4 # The format is: 5 5 # <number> <abi> <name> <entry point> <compat entry point> 6 6 # 7 + # The __ia32_sys and __ia32_compat_sys stubs are created on-the-fly for 8 + # sys_*() system calls and compat_sys_*() compat system calls if 9 + # IA32_EMULATION is defined, and expect struct pt_regs *regs as their only 10 + # parameter. 11 + # 7 12 # The abi is always "i386" for this file. 8 13 # 9 - 0 i386 restart_syscall sys_restart_syscall 10 - 1 i386 exit sys_exit 11 - 2 i386 fork sys_fork 12 - 3 i386 read sys_read 13 - 4 i386 write sys_write 14 - 5 i386 open sys_open compat_sys_open 15 - 6 i386 close sys_close 16 - 7 i386 waitpid sys_waitpid 17 - 8 i386 creat sys_creat 18 - 9 i386 link sys_link 19 - 10 i386 unlink sys_unlink 20 - 11 i386 execve sys_execve compat_sys_execve 21 - 12 i386 chdir sys_chdir 22 - 13 i386 time sys_time compat_sys_time 23 - 14 i386 mknod sys_mknod 24 - 15 i386 chmod sys_chmod 25 - 16 i386 lchown sys_lchown16 14 + 0 i386 restart_syscall sys_restart_syscall __ia32_sys_restart_syscall 15 + 1 i386 exit sys_exit __ia32_sys_exit 16 + 2 i386 fork sys_fork __ia32_sys_fork 17 + 3 i386 read sys_read __ia32_sys_read 18 + 4 i386 write sys_write __ia32_sys_write 19 + 5 i386 open sys_open __ia32_compat_sys_open 20 + 6 i386 close sys_close __ia32_sys_close 21 + 7 i386 waitpid sys_waitpid __ia32_sys_waitpid 22 + 8 i386 creat sys_creat __ia32_sys_creat 23 + 9 i386 link sys_link __ia32_sys_link 24 + 10 i386 unlink sys_unlink __ia32_sys_unlink 25 + 11 i386 execve sys_execve __ia32_compat_sys_execve 26 + 12 i386 chdir sys_chdir __ia32_sys_chdir 27 + 13 i386 time sys_time __ia32_compat_sys_time 28 + 14 i386 mknod sys_mknod __ia32_sys_mknod 29 + 15 i386 chmod sys_chmod __ia32_sys_chmod 30 + 16 i386 lchown sys_lchown16 __ia32_sys_lchown16 26 31 17 i386 break 27 - 18 i386 oldstat sys_stat 28 - 19 i386 lseek sys_lseek compat_sys_lseek 29 - 20 i386 getpid sys_getpid 30 - 21 i386 mount sys_mount compat_sys_mount 31 - 22 i386 umount sys_oldumount 32 - 23 i386 setuid sys_setuid16 33 - 24 i386 getuid sys_getuid16 34 - 25 i386 stime sys_stime compat_sys_stime 35 - 26 i386 ptrace sys_ptrace compat_sys_ptrace 36 - 27 i386 alarm sys_alarm 37 - 28 i386 oldfstat sys_fstat 38 - 29 i386 pause sys_pause 39 - 30 i386 utime sys_utime compat_sys_utime 32 + 18 i386 oldstat sys_stat __ia32_sys_stat 33 + 19 i386 lseek sys_lseek __ia32_compat_sys_lseek 34 + 20 i386 getpid sys_getpid __ia32_sys_getpid 35 + 21 i386 mount sys_mount __ia32_compat_sys_mount 36 + 22 i386 umount sys_oldumount __ia32_sys_oldumount 37 + 23 i386 setuid sys_setuid16 __ia32_sys_setuid16 38 + 24 i386 getuid sys_getuid16 __ia32_sys_getuid16 39 + 25 i386 stime sys_stime __ia32_compat_sys_stime 40 + 26 i386 ptrace sys_ptrace __ia32_compat_sys_ptrace 41 + 27 i386 alarm sys_alarm __ia32_sys_alarm 42 + 28 i386 oldfstat sys_fstat __ia32_sys_fstat 43 + 29 i386 pause sys_pause __ia32_sys_pause 44 + 30 i386 utime sys_utime __ia32_compat_sys_utime 40 45 31 i386 stty 41 46 32 i386 gtty 42 - 33 i386 access sys_access 43 - 34 i386 nice sys_nice 47 + 33 i386 access sys_access __ia32_sys_access 48 + 34 i386 nice sys_nice __ia32_sys_nice 44 49 35 i386 ftime 45 - 36 i386 sync sys_sync 46 - 37 i386 kill sys_kill 47 - 38 i386 rename sys_rename 48 - 39 i386 mkdir sys_mkdir 49 - 40 i386 rmdir sys_rmdir 50 - 41 i386 dup sys_dup 51 - 42 i386 pipe sys_pipe 52 - 43 i386 times sys_times compat_sys_times 50 + 36 i386 sync sys_sync __ia32_sys_sync 51 + 37 i386 kill sys_kill __ia32_sys_kill 52 + 38 i386 rename sys_rename __ia32_sys_rename 53 + 39 i386 mkdir sys_mkdir __ia32_sys_mkdir 54 + 40 i386 rmdir sys_rmdir __ia32_sys_rmdir 55 + 41 i386 dup sys_dup __ia32_sys_dup 56 + 42 i386 pipe sys_pipe __ia32_sys_pipe 57 + 43 i386 times sys_times __ia32_compat_sys_times 53 58 44 i386 prof 54 - 45 i386 brk sys_brk 55 - 46 i386 setgid sys_setgid16 56 - 47 i386 getgid sys_getgid16 57 - 48 i386 signal sys_signal 58 - 49 i386 geteuid sys_geteuid16 59 - 50 i386 getegid sys_getegid16 60 - 51 i386 acct sys_acct 61 - 52 i386 umount2 sys_umount 59 + 45 i386 brk sys_brk __ia32_sys_brk 60 + 46 i386 setgid sys_setgid16 __ia32_sys_setgid16 61 + 47 i386 getgid sys_getgid16 __ia32_sys_getgid16 62 + 48 i386 signal sys_signal __ia32_sys_signal 63 + 49 i386 geteuid sys_geteuid16 __ia32_sys_geteuid16 64 + 50 i386 getegid sys_getegid16 __ia32_sys_getegid16 65 + 51 i386 acct sys_acct __ia32_sys_acct 66 + 52 i386 umount2 sys_umount __ia32_sys_umount 62 67 53 i386 lock 63 - 54 i386 ioctl sys_ioctl compat_sys_ioctl 64 - 55 i386 fcntl sys_fcntl compat_sys_fcntl64 68 + 54 i386 ioctl sys_ioctl __ia32_compat_sys_ioctl 69 + 55 i386 fcntl sys_fcntl __ia32_compat_sys_fcntl64 65 70 56 i386 mpx 66 - 57 i386 setpgid sys_setpgid 71 + 57 i386 setpgid sys_setpgid __ia32_sys_setpgid 67 72 58 i386 ulimit 68 - 59 i386 oldolduname sys_olduname 69 - 60 i386 umask sys_umask 70 - 61 i386 chroot sys_chroot 71 - 62 i386 ustat sys_ustat compat_sys_ustat 72 - 63 i386 dup2 sys_dup2 73 - 64 i386 getppid sys_getppid 74 - 65 i386 getpgrp sys_getpgrp 75 - 66 i386 setsid sys_setsid 76 - 67 i386 sigaction sys_sigaction compat_sys_sigaction 77 - 68 i386 sgetmask sys_sgetmask 78 - 69 i386 ssetmask sys_ssetmask 79 - 70 i386 setreuid sys_setreuid16 80 - 71 i386 setregid sys_setregid16 81 - 72 i386 sigsuspend sys_sigsuspend 82 - 73 i386 sigpending sys_sigpending compat_sys_sigpending 83 - 74 i386 sethostname sys_sethostname 84 - 75 i386 setrlimit sys_setrlimit compat_sys_setrlimit 85 - 76 i386 getrlimit sys_old_getrlimit compat_sys_old_getrlimit 86 - 77 i386 getrusage sys_getrusage compat_sys_getrusage 87 - 78 i386 gettimeofday sys_gettimeofday compat_sys_gettimeofday 88 - 79 i386 settimeofday sys_settimeofday compat_sys_settimeofday 89 - 80 i386 getgroups sys_getgroups16 90 - 81 i386 setgroups sys_setgroups16 91 - 82 i386 select sys_old_select compat_sys_old_select 92 - 83 i386 symlink sys_symlink 93 - 84 i386 oldlstat sys_lstat 94 - 85 i386 readlink sys_readlink 95 - 86 i386 uselib sys_uselib 96 - 87 i386 swapon sys_swapon 97 - 88 i386 reboot sys_reboot 98 - 89 i386 readdir sys_old_readdir compat_sys_old_readdir 99 - 90 i386 mmap sys_old_mmap compat_sys_x86_mmap 100 - 91 i386 munmap sys_munmap 101 - 92 i386 truncate sys_truncate compat_sys_truncate 102 - 93 i386 ftruncate sys_ftruncate compat_sys_ftruncate 103 - 94 i386 fchmod sys_fchmod 104 - 95 i386 fchown sys_fchown16 105 - 96 i386 getpriority sys_getpriority 106 - 97 i386 setpriority sys_setpriority 73 + 59 i386 oldolduname sys_olduname __ia32_sys_olduname 74 + 60 i386 umask sys_umask __ia32_sys_umask 75 + 61 i386 chroot sys_chroot __ia32_sys_chroot 76 + 62 i386 ustat sys_ustat __ia32_compat_sys_ustat 77 + 63 i386 dup2 sys_dup2 __ia32_sys_dup2 78 + 64 i386 getppid sys_getppid __ia32_sys_getppid 79 + 65 i386 getpgrp sys_getpgrp __ia32_sys_getpgrp 80 + 66 i386 setsid sys_setsid __ia32_sys_setsid 81 + 67 i386 sigaction sys_sigaction __ia32_compat_sys_sigaction 82 + 68 i386 sgetmask sys_sgetmask __ia32_sys_sgetmask 83 + 69 i386 ssetmask sys_ssetmask __ia32_sys_ssetmask 84 + 70 i386 setreuid sys_setreuid16 __ia32_sys_setreuid16 85 + 71 i386 setregid sys_setregid16 __ia32_sys_setregid16 86 + 72 i386 sigsuspend sys_sigsuspend __ia32_sys_sigsuspend 87 + 73 i386 sigpending sys_sigpending __ia32_compat_sys_sigpending 88 + 74 i386 sethostname sys_sethostname __ia32_sys_sethostname 89 + 75 i386 setrlimit sys_setrlimit __ia32_compat_sys_setrlimit 90 + 76 i386 getrlimit sys_old_getrlimit __ia32_compat_sys_old_getrlimit 91 + 77 i386 getrusage sys_getrusage __ia32_compat_sys_getrusage 92 + 78 i386 gettimeofday sys_gettimeofday __ia32_compat_sys_gettimeofday 93 + 79 i386 settimeofday sys_settimeofday __ia32_compat_sys_settimeofday 94 + 80 i386 getgroups sys_getgroups16 __ia32_sys_getgroups16 95 + 81 i386 setgroups sys_setgroups16 __ia32_sys_setgroups16 96 + 82 i386 select sys_old_select __ia32_compat_sys_old_select 97 + 83 i386 symlink sys_symlink __ia32_sys_symlink 98 + 84 i386 oldlstat sys_lstat __ia32_sys_lstat 99 + 85 i386 readlink sys_readlink __ia32_sys_readlink 100 + 86 i386 uselib sys_uselib __ia32_sys_uselib 101 + 87 i386 swapon sys_swapon __ia32_sys_swapon 102 + 88 i386 reboot sys_reboot __ia32_sys_reboot 103 + 89 i386 readdir sys_old_readdir __ia32_compat_sys_old_readdir 104 + 90 i386 mmap sys_old_mmap __ia32_compat_sys_x86_mmap 105 + 91 i386 munmap sys_munmap __ia32_sys_munmap 106 + 92 i386 truncate sys_truncate __ia32_compat_sys_truncate 107 + 93 i386 ftruncate sys_ftruncate __ia32_compat_sys_ftruncate 108 + 94 i386 fchmod sys_fchmod __ia32_sys_fchmod 109 + 95 i386 fchown sys_fchown16 __ia32_sys_fchown16 110 + 96 i386 getpriority sys_getpriority __ia32_sys_getpriority 111 + 97 i386 setpriority sys_setpriority __ia32_sys_setpriority 107 112 98 i386 profil 108 - 99 i386 statfs sys_statfs compat_sys_statfs 109 - 100 i386 fstatfs sys_fstatfs compat_sys_fstatfs 110 - 101 i386 ioperm sys_ioperm 111 - 102 i386 socketcall sys_socketcall compat_sys_socketcall 112 - 103 i386 syslog sys_syslog 113 - 104 i386 setitimer sys_setitimer compat_sys_setitimer 114 - 105 i386 getitimer sys_getitimer compat_sys_getitimer 115 - 106 i386 stat sys_newstat compat_sys_newstat 116 - 107 i386 lstat sys_newlstat compat_sys_newlstat 117 - 108 i386 fstat sys_newfstat compat_sys_newfstat 118 - 109 i386 olduname sys_uname 119 - 110 i386 iopl sys_iopl 120 - 111 i386 vhangup sys_vhangup 113 + 99 i386 statfs sys_statfs __ia32_compat_sys_statfs 114 + 100 i386 fstatfs sys_fstatfs __ia32_compat_sys_fstatfs 115 + 101 i386 ioperm sys_ioperm __ia32_sys_ioperm 116 + 102 i386 socketcall sys_socketcall __ia32_compat_sys_socketcall 117 + 103 i386 syslog sys_syslog __ia32_sys_syslog 118 + 104 i386 setitimer sys_setitimer __ia32_compat_sys_setitimer 119 + 105 i386 getitimer sys_getitimer __ia32_compat_sys_getitimer 120 + 106 i386 stat sys_newstat __ia32_compat_sys_newstat 121 + 107 i386 lstat sys_newlstat __ia32_compat_sys_newlstat 122 + 108 i386 fstat sys_newfstat __ia32_compat_sys_newfstat 123 + 109 i386 olduname sys_uname __ia32_sys_uname 124 + 110 i386 iopl sys_iopl __ia32_sys_iopl 125 + 111 i386 vhangup sys_vhangup __ia32_sys_vhangup 121 126 112 i386 idle 122 127 113 i386 vm86old sys_vm86old sys_ni_syscall 123 - 114 i386 wait4 sys_wait4 compat_sys_wait4 124 - 115 i386 swapoff sys_swapoff 125 - 116 i386 sysinfo sys_sysinfo compat_sys_sysinfo 126 - 117 i386 ipc sys_ipc compat_sys_ipc 127 - 118 i386 fsync sys_fsync 128 + 114 i386 wait4 sys_wait4 __ia32_compat_sys_wait4 129 + 115 i386 swapoff sys_swapoff __ia32_sys_swapoff 130 + 116 i386 sysinfo sys_sysinfo __ia32_compat_sys_sysinfo 131 + 117 i386 ipc sys_ipc __ia32_compat_sys_ipc 132 + 118 i386 fsync sys_fsync __ia32_sys_fsync 128 133 119 i386 sigreturn sys_sigreturn sys32_sigreturn 129 - 120 i386 clone sys_clone compat_sys_x86_clone 130 - 121 i386 setdomainname sys_setdomainname 131 - 122 i386 uname sys_newuname 132 - 123 i386 modify_ldt sys_modify_ldt 133 - 124 i386 adjtimex sys_adjtimex compat_sys_adjtimex 134 - 125 i386 mprotect sys_mprotect 135 - 126 i386 sigprocmask sys_sigprocmask compat_sys_sigprocmask 134 + 120 i386 clone sys_clone __ia32_compat_sys_x86_clone 135 + 121 i386 setdomainname sys_setdomainname __ia32_sys_setdomainname 136 + 122 i386 uname sys_newuname __ia32_sys_newuname 137 + 123 i386 modify_ldt sys_modify_ldt __ia32_sys_modify_ldt 138 + 124 i386 adjtimex sys_adjtimex __ia32_compat_sys_adjtimex 139 + 125 i386 mprotect sys_mprotect __ia32_sys_mprotect 140 + 126 i386 sigprocmask sys_sigprocmask __ia32_compat_sys_sigprocmask 136 141 127 i386 create_module 137 - 128 i386 init_module sys_init_module 138 - 129 i386 delete_module sys_delete_module 142 + 128 i386 init_module sys_init_module __ia32_sys_init_module 143 + 129 i386 delete_module sys_delete_module __ia32_sys_delete_module 139 144 130 i386 get_kernel_syms 140 - 131 i386 quotactl sys_quotactl compat_sys_quotactl32 141 - 132 i386 getpgid sys_getpgid 142 - 133 i386 fchdir sys_fchdir 143 - 134 i386 bdflush sys_bdflush 144 - 135 i386 sysfs sys_sysfs 145 - 136 i386 personality sys_personality 145 + 131 i386 quotactl sys_quotactl __ia32_compat_sys_quotactl32 146 + 132 i386 getpgid sys_getpgid __ia32_sys_getpgid 147 + 133 i386 fchdir sys_fchdir __ia32_sys_fchdir 148 + 134 i386 bdflush sys_bdflush __ia32_sys_bdflush 149 + 135 i386 sysfs sys_sysfs __ia32_sys_sysfs 150 + 136 i386 personality sys_personality __ia32_sys_personality 146 151 137 i386 afs_syscall 147 - 138 i386 setfsuid sys_setfsuid16 148 - 139 i386 setfsgid sys_setfsgid16 149 - 140 i386 _llseek sys_llseek 150 - 141 i386 getdents sys_getdents compat_sys_getdents 151 - 142 i386 _newselect sys_select compat_sys_select 152 - 143 i386 flock sys_flock 153 - 144 i386 msync sys_msync 154 - 145 i386 readv sys_readv compat_sys_readv 155 - 146 i386 writev sys_writev compat_sys_writev 156 - 147 i386 getsid sys_getsid 157 - 148 i386 fdatasync sys_fdatasync 158 - 149 i386 _sysctl sys_sysctl compat_sys_sysctl 159 - 150 i386 mlock sys_mlock 160 - 151 i386 munlock sys_munlock 161 - 152 i386 mlockall sys_mlockall 162 - 153 i386 munlockall sys_munlockall 163 - 154 i386 sched_setparam sys_sched_setparam 164 - 155 i386 sched_getparam sys_sched_getparam 165 - 156 i386 sched_setscheduler sys_sched_setscheduler 166 - 157 i386 sched_getscheduler sys_sched_getscheduler 167 - 158 i386 sched_yield sys_sched_yield 168 - 159 i386 sched_get_priority_max sys_sched_get_priority_max 169 - 160 i386 sched_get_priority_min sys_sched_get_priority_min 170 - 161 i386 sched_rr_get_interval sys_sched_rr_get_interval compat_sys_sched_rr_get_interval 171 - 162 i386 nanosleep sys_nanosleep compat_sys_nanosleep 172 - 163 i386 mremap sys_mremap 173 - 164 i386 setresuid sys_setresuid16 174 - 165 i386 getresuid sys_getresuid16 152 + 138 i386 setfsuid sys_setfsuid16 __ia32_sys_setfsuid16 153 + 139 i386 setfsgid sys_setfsgid16 __ia32_sys_setfsgid16 154 + 140 i386 _llseek sys_llseek __ia32_sys_llseek 155 + 141 i386 getdents sys_getdents __ia32_compat_sys_getdents 156 + 142 i386 _newselect sys_select __ia32_compat_sys_select 157 + 143 i386 flock sys_flock __ia32_sys_flock 158 + 144 i386 msync sys_msync __ia32_sys_msync 159 + 145 i386 readv sys_readv __ia32_compat_sys_readv 160 + 146 i386 writev sys_writev __ia32_compat_sys_writev 161 + 147 i386 getsid sys_getsid __ia32_sys_getsid 162 + 148 i386 fdatasync sys_fdatasync __ia32_sys_fdatasync 163 + 149 i386 _sysctl sys_sysctl __ia32_compat_sys_sysctl 164 + 150 i386 mlock sys_mlock __ia32_sys_mlock 165 + 151 i386 munlock sys_munlock __ia32_sys_munlock 166 + 152 i386 mlockall sys_mlockall __ia32_sys_mlockall 167 + 153 i386 munlockall sys_munlockall __ia32_sys_munlockall 168 + 154 i386 sched_setparam sys_sched_setparam __ia32_sys_sched_setparam 169 + 155 i386 sched_getparam sys_sched_getparam __ia32_sys_sched_getparam 170 + 156 i386 sched_setscheduler sys_sched_setscheduler __ia32_sys_sched_setscheduler 171 + 157 i386 sched_getscheduler sys_sched_getscheduler __ia32_sys_sched_getscheduler 172 + 158 i386 sched_yield sys_sched_yield __ia32_sys_sched_yield 173 + 159 i386 sched_get_priority_max sys_sched_get_priority_max __ia32_sys_sched_get_priority_max 174 + 160 i386 sched_get_priority_min sys_sched_get_priority_min __ia32_sys_sched_get_priority_min 175 + 161 i386 sched_rr_get_interval sys_sched_rr_get_interval __ia32_compat_sys_sched_rr_get_interval 176 + 162 i386 nanosleep sys_nanosleep __ia32_compat_sys_nanosleep 177 + 163 i386 mremap sys_mremap __ia32_sys_mremap 178 + 164 i386 setresuid sys_setresuid16 __ia32_sys_setresuid16 179 + 165 i386 getresuid sys_getresuid16 __ia32_sys_getresuid16 175 180 166 i386 vm86 sys_vm86 sys_ni_syscall 176 181 167 i386 query_module 177 - 168 i386 poll sys_poll 182 + 168 i386 poll sys_poll __ia32_sys_poll 178 183 169 i386 nfsservctl 179 - 170 i386 setresgid sys_setresgid16 180 - 171 i386 getresgid sys_getresgid16 181 - 172 i386 prctl sys_prctl 184 + 170 i386 setresgid sys_setresgid16 __ia32_sys_setresgid16 185 + 171 i386 getresgid sys_getresgid16 __ia32_sys_getresgid16 186 + 172 i386 prctl sys_prctl __ia32_sys_prctl 182 187 173 i386 rt_sigreturn sys_rt_sigreturn sys32_rt_sigreturn 183 - 174 i386 rt_sigaction sys_rt_sigaction compat_sys_rt_sigaction 184 - 175 i386 rt_sigprocmask sys_rt_sigprocmask 185 - 176 i386 rt_sigpending sys_rt_sigpending compat_sys_rt_sigpending 186 - 177 i386 rt_sigtimedwait sys_rt_sigtimedwait compat_sys_rt_sigtimedwait 187 - 178 i386 rt_sigqueueinfo sys_rt_sigqueueinfo compat_sys_rt_sigqueueinfo 188 - 179 i386 rt_sigsuspend sys_rt_sigsuspend 189 - 180 i386 pread64 sys_pread64 compat_sys_x86_pread 190 - 181 i386 pwrite64 sys_pwrite64 compat_sys_x86_pwrite 191 - 182 i386 chown sys_chown16 192 - 183 i386 getcwd sys_getcwd 193 - 184 i386 capget sys_capget 194 - 185 i386 capset sys_capset 195 - 186 i386 sigaltstack sys_sigaltstack compat_sys_sigaltstack 196 - 187 i386 sendfile sys_sendfile compat_sys_sendfile 188 + 174 i386 rt_sigaction sys_rt_sigaction __ia32_compat_sys_rt_sigaction 189 + 175 i386 rt_sigprocmask sys_rt_sigprocmask __ia32_sys_rt_sigprocmask 190 + 176 i386 rt_sigpending sys_rt_sigpending __ia32_compat_sys_rt_sigpending 191 + 177 i386 rt_sigtimedwait sys_rt_sigtimedwait __ia32_compat_sys_rt_sigtimedwait 192 + 178 i386 rt_sigqueueinfo sys_rt_sigqueueinfo __ia32_compat_sys_rt_sigqueueinfo 193 + 179 i386 rt_sigsuspend sys_rt_sigsuspend __ia32_sys_rt_sigsuspend 194 + 180 i386 pread64 sys_pread64 __ia32_compat_sys_x86_pread 195 + 181 i386 pwrite64 sys_pwrite64 __ia32_compat_sys_x86_pwrite 196 + 182 i386 chown sys_chown16 __ia32_sys_chown16 197 + 183 i386 getcwd sys_getcwd __ia32_sys_getcwd 198 + 184 i386 capget sys_capget __ia32_sys_capget 199 + 185 i386 capset sys_capset __ia32_sys_capset 200 + 186 i386 sigaltstack sys_sigaltstack __ia32_compat_sys_sigaltstack 201 + 187 i386 sendfile sys_sendfile __ia32_compat_sys_sendfile 197 202 188 i386 getpmsg 198 203 189 i386 putpmsg 199 - 190 i386 vfork sys_vfork 200 - 191 i386 ugetrlimit sys_getrlimit compat_sys_getrlimit 201 - 192 i386 mmap2 sys_mmap_pgoff 202 - 193 i386 truncate64 sys_truncate64 compat_sys_x86_truncate64 203 - 194 i386 ftruncate64 sys_ftruncate64 compat_sys_x86_ftruncate64 204 - 195 i386 stat64 sys_stat64 compat_sys_x86_stat64 205 - 196 i386 lstat64 sys_lstat64 compat_sys_x86_lstat64 206 - 197 i386 fstat64 sys_fstat64 compat_sys_x86_fstat64 207 - 198 i386 lchown32 sys_lchown 208 - 199 i386 getuid32 sys_getuid 209 - 200 i386 getgid32 sys_getgid 210 - 201 i386 geteuid32 sys_geteuid 211 - 202 i386 getegid32 sys_getegid 212 - 203 i386 setreuid32 sys_setreuid 213 - 204 i386 setregid32 sys_setregid 214 - 205 i386 getgroups32 sys_getgroups 215 - 206 i386 setgroups32 sys_setgroups 216 - 207 i386 fchown32 sys_fchown 217 - 208 i386 setresuid32 sys_setresuid 218 - 209 i386 getresuid32 sys_getresuid 219 - 210 i386 setresgid32 sys_setresgid 220 - 211 i386 getresgid32 sys_getresgid 221 - 212 i386 chown32 sys_chown 222 - 213 i386 setuid32 sys_setuid 223 - 214 i386 setgid32 sys_setgid 224 - 215 i386 setfsuid32 sys_setfsuid 225 - 216 i386 setfsgid32 sys_setfsgid 226 - 217 i386 pivot_root sys_pivot_root 227 - 218 i386 mincore sys_mincore 228 - 219 i386 madvise sys_madvise 229 - 220 i386 getdents64 sys_getdents64 230 - 221 i386 fcntl64 sys_fcntl64 compat_sys_fcntl64 204 + 190 i386 vfork sys_vfork __ia32_sys_vfork 205 + 191 i386 ugetrlimit sys_getrlimit __ia32_compat_sys_getrlimit 206 + 192 i386 mmap2 sys_mmap_pgoff __ia32_sys_mmap_pgoff 207 + 193 i386 truncate64 sys_truncate64 __ia32_compat_sys_x86_truncate64 208 + 194 i386 ftruncate64 sys_ftruncate64 __ia32_compat_sys_x86_ftruncate64 209 + 195 i386 stat64 sys_stat64 __ia32_compat_sys_x86_stat64 210 + 196 i386 lstat64 sys_lstat64 __ia32_compat_sys_x86_lstat64 211 + 197 i386 fstat64 sys_fstat64 __ia32_compat_sys_x86_fstat64 212 + 198 i386 lchown32 sys_lchown __ia32_sys_lchown 213 + 199 i386 getuid32 sys_getuid __ia32_sys_getuid 214 + 200 i386 getgid32 sys_getgid __ia32_sys_getgid 215 + 201 i386 geteuid32 sys_geteuid __ia32_sys_geteuid 216 + 202 i386 getegid32 sys_getegid __ia32_sys_getegid 217 + 203 i386 setreuid32 sys_setreuid __ia32_sys_setreuid 218 + 204 i386 setregid32 sys_setregid __ia32_sys_setregid 219 + 205 i386 getgroups32 sys_getgroups __ia32_sys_getgroups 220 + 206 i386 setgroups32 sys_setgroups __ia32_sys_setgroups 221 + 207 i386 fchown32 sys_fchown __ia32_sys_fchown 222 + 208 i386 setresuid32 sys_setresuid __ia32_sys_setresuid 223 + 209 i386 getresuid32 sys_getresuid __ia32_sys_getresuid 224 + 210 i386 setresgid32 sys_setresgid __ia32_sys_setresgid 225 + 211 i386 getresgid32 sys_getresgid __ia32_sys_getresgid 226 + 212 i386 chown32 sys_chown __ia32_sys_chown 227 + 213 i386 setuid32 sys_setuid __ia32_sys_setuid 228 + 214 i386 setgid32 sys_setgid __ia32_sys_setgid 229 + 215 i386 setfsuid32 sys_setfsuid __ia32_sys_setfsuid 230 + 216 i386 setfsgid32 sys_setfsgid __ia32_sys_setfsgid 231 + 217 i386 pivot_root sys_pivot_root __ia32_sys_pivot_root 232 + 218 i386 mincore sys_mincore __ia32_sys_mincore 233 + 219 i386 madvise sys_madvise __ia32_sys_madvise 234 + 220 i386 getdents64 sys_getdents64 __ia32_sys_getdents64 235 + 221 i386 fcntl64 sys_fcntl64 __ia32_compat_sys_fcntl64 231 236 # 222 is unused 232 237 # 223 is unused 233 - 224 i386 gettid sys_gettid 234 - 225 i386 readahead sys_readahead compat_sys_x86_readahead 235 - 226 i386 setxattr sys_setxattr 236 - 227 i386 lsetxattr sys_lsetxattr 237 - 228 i386 fsetxattr sys_fsetxattr 238 - 229 i386 getxattr sys_getxattr 239 - 230 i386 lgetxattr sys_lgetxattr 240 - 231 i386 fgetxattr sys_fgetxattr 241 - 232 i386 listxattr sys_listxattr 242 - 233 i386 llistxattr sys_llistxattr 243 - 234 i386 flistxattr sys_flistxattr 244 - 235 i386 removexattr sys_removexattr 245 - 236 i386 lremovexattr sys_lremovexattr 246 - 237 i386 fremovexattr sys_fremovexattr 247 - 238 i386 tkill sys_tkill 248 - 239 i386 sendfile64 sys_sendfile64 249 - 240 i386 futex sys_futex compat_sys_futex 250 - 241 i386 sched_setaffinity sys_sched_setaffinity compat_sys_sched_setaffinity 251 - 242 i386 sched_getaffinity sys_sched_getaffinity compat_sys_sched_getaffinity 252 - 243 i386 set_thread_area sys_set_thread_area 253 - 244 i386 get_thread_area sys_get_thread_area 254 - 245 i386 io_setup sys_io_setup compat_sys_io_setup 255 - 246 i386 io_destroy sys_io_destroy 256 - 247 i386 io_getevents sys_io_getevents compat_sys_io_getevents 257 - 248 i386 io_submit sys_io_submit compat_sys_io_submit 258 - 249 i386 io_cancel sys_io_cancel 259 - 250 i386 fadvise64 sys_fadvise64 compat_sys_x86_fadvise64 238 + 224 i386 gettid sys_gettid __ia32_sys_gettid 239 + 225 i386 readahead sys_readahead __ia32_compat_sys_x86_readahead 240 + 226 i386 setxattr sys_setxattr __ia32_sys_setxattr 241 + 227 i386 lsetxattr sys_lsetxattr __ia32_sys_lsetxattr 242 + 228 i386 fsetxattr sys_fsetxattr __ia32_sys_fsetxattr 243 + 229 i386 getxattr sys_getxattr __ia32_sys_getxattr 244 + 230 i386 lgetxattr sys_lgetxattr __ia32_sys_lgetxattr 245 + 231 i386 fgetxattr sys_fgetxattr __ia32_sys_fgetxattr 246 + 232 i386 listxattr sys_listxattr __ia32_sys_listxattr 247 + 233 i386 llistxattr sys_llistxattr __ia32_sys_llistxattr 248 + 234 i386 flistxattr sys_flistxattr __ia32_sys_flistxattr 249 + 235 i386 removexattr sys_removexattr __ia32_sys_removexattr 250 + 236 i386 lremovexattr sys_lremovexattr __ia32_sys_lremovexattr 251 + 237 i386 fremovexattr sys_fremovexattr __ia32_sys_fremovexattr 252 + 238 i386 tkill sys_tkill __ia32_sys_tkill 253 + 239 i386 sendfile64 sys_sendfile64 __ia32_sys_sendfile64 254 + 240 i386 futex sys_futex __ia32_compat_sys_futex 255 + 241 i386 sched_setaffinity sys_sched_setaffinity __ia32_compat_sys_sched_setaffinity 256 + 242 i386 sched_getaffinity sys_sched_getaffinity __ia32_compat_sys_sched_getaffinity 257 + 243 i386 set_thread_area sys_set_thread_area __ia32_sys_set_thread_area 258 + 244 i386 get_thread_area sys_get_thread_area __ia32_sys_get_thread_area 259 + 245 i386 io_setup sys_io_setup __ia32_compat_sys_io_setup 260 + 246 i386 io_destroy sys_io_destroy __ia32_sys_io_destroy 261 + 247 i386 io_getevents sys_io_getevents __ia32_compat_sys_io_getevents 262 + 248 i386 io_submit sys_io_submit __ia32_compat_sys_io_submit 263 + 249 i386 io_cancel sys_io_cancel __ia32_sys_io_cancel 264 + 250 i386 fadvise64 sys_fadvise64 __ia32_compat_sys_x86_fadvise64 260 265 # 251 is available for reuse (was briefly sys_set_zone_reclaim) 261 - 252 i386 exit_group sys_exit_group 262 - 253 i386 lookup_dcookie sys_lookup_dcookie compat_sys_lookup_dcookie 263 - 254 i386 epoll_create sys_epoll_create 264 - 255 i386 epoll_ctl sys_epoll_ctl 265 - 256 i386 epoll_wait sys_epoll_wait 266 - 257 i386 remap_file_pages sys_remap_file_pages 267 - 258 i386 set_tid_address sys_set_tid_address 268 - 259 i386 timer_create sys_timer_create compat_sys_timer_create 269 - 260 i386 timer_settime sys_timer_settime compat_sys_timer_settime 270 - 261 i386 timer_gettime sys_timer_gettime compat_sys_timer_gettime 271 - 262 i386 timer_getoverrun sys_timer_getoverrun 272 - 263 i386 timer_delete sys_timer_delete 273 - 264 i386 clock_settime sys_clock_settime compat_sys_clock_settime 274 - 265 i386 clock_gettime sys_clock_gettime compat_sys_clock_gettime 275 - 266 i386 clock_getres sys_clock_getres compat_sys_clock_getres 276 - 267 i386 clock_nanosleep sys_clock_nanosleep compat_sys_clock_nanosleep 277 - 268 i386 statfs64 sys_statfs64 compat_sys_statfs64 278 - 269 i386 fstatfs64 sys_fstatfs64 compat_sys_fstatfs64 279 - 270 i386 tgkill sys_tgkill 280 - 271 i386 utimes sys_utimes compat_sys_utimes 281 - 272 i386 fadvise64_64 sys_fadvise64_64 compat_sys_x86_fadvise64_64 266 + 252 i386 exit_group sys_exit_group __ia32_sys_exit_group 267 + 253 i386 lookup_dcookie sys_lookup_dcookie __ia32_compat_sys_lookup_dcookie 268 + 254 i386 epoll_create sys_epoll_create __ia32_sys_epoll_create 269 + 255 i386 epoll_ctl sys_epoll_ctl __ia32_sys_epoll_ctl 270 + 256 i386 epoll_wait sys_epoll_wait __ia32_sys_epoll_wait 271 + 257 i386 remap_file_pages sys_remap_file_pages __ia32_sys_remap_file_pages 272 + 258 i386 set_tid_address sys_set_tid_address __ia32_sys_set_tid_address 273 + 259 i386 timer_create sys_timer_create __ia32_compat_sys_timer_create 274 + 260 i386 timer_settime sys_timer_settime __ia32_compat_sys_timer_settime 275 + 261 i386 timer_gettime sys_timer_gettime __ia32_compat_sys_timer_gettime 276 + 262 i386 timer_getoverrun sys_timer_getoverrun __ia32_sys_timer_getoverrun 277 + 263 i386 timer_delete sys_timer_delete __ia32_sys_timer_delete 278 + 264 i386 clock_settime sys_clock_settime __ia32_compat_sys_clock_settime 279 + 265 i386 clock_gettime sys_clock_gettime __ia32_compat_sys_clock_gettime 280 + 266 i386 clock_getres sys_clock_getres __ia32_compat_sys_clock_getres 281 + 267 i386 clock_nanosleep sys_clock_nanosleep __ia32_compat_sys_clock_nanosleep 282 + 268 i386 statfs64 sys_statfs64 __ia32_compat_sys_statfs64 283 + 269 i386 fstatfs64 sys_fstatfs64 __ia32_compat_sys_fstatfs64 284 + 270 i386 tgkill sys_tgkill __ia32_sys_tgkill 285 + 271 i386 utimes sys_utimes __ia32_compat_sys_utimes 286 + 272 i386 fadvise64_64 sys_fadvise64_64 __ia32_compat_sys_x86_fadvise64_64 282 287 273 i386 vserver 283 - 274 i386 mbind sys_mbind 284 - 275 i386 get_mempolicy sys_get_mempolicy compat_sys_get_mempolicy 285 - 276 i386 set_mempolicy sys_set_mempolicy 286 - 277 i386 mq_open sys_mq_open compat_sys_mq_open 287 - 278 i386 mq_unlink sys_mq_unlink 288 - 279 i386 mq_timedsend sys_mq_timedsend compat_sys_mq_timedsend 289 - 280 i386 mq_timedreceive sys_mq_timedreceive compat_sys_mq_timedreceive 290 - 281 i386 mq_notify sys_mq_notify compat_sys_mq_notify 291 - 282 i386 mq_getsetattr sys_mq_getsetattr compat_sys_mq_getsetattr 292 - 283 i386 kexec_load sys_kexec_load compat_sys_kexec_load 293 - 284 i386 waitid sys_waitid compat_sys_waitid 288 + 274 i386 mbind sys_mbind __ia32_sys_mbind 289 + 275 i386 get_mempolicy sys_get_mempolicy __ia32_compat_sys_get_mempolicy 290 + 276 i386 set_mempolicy sys_set_mempolicy __ia32_sys_set_mempolicy 291 + 277 i386 mq_open sys_mq_open __ia32_compat_sys_mq_open 292 + 278 i386 mq_unlink sys_mq_unlink __ia32_sys_mq_unlink 293 + 279 i386 mq_timedsend sys_mq_timedsend __ia32_compat_sys_mq_timedsend 294 + 280 i386 mq_timedreceive sys_mq_timedreceive __ia32_compat_sys_mq_timedreceive 295 + 281 i386 mq_notify sys_mq_notify __ia32_compat_sys_mq_notify 296 + 282 i386 mq_getsetattr sys_mq_getsetattr __ia32_compat_sys_mq_getsetattr 297 + 283 i386 kexec_load sys_kexec_load __ia32_compat_sys_kexec_load 298 + 284 i386 waitid sys_waitid __ia32_compat_sys_waitid 294 299 # 285 sys_setaltroot 295 - 286 i386 add_key sys_add_key 296 - 287 i386 request_key sys_request_key 297 - 288 i386 keyctl sys_keyctl compat_sys_keyctl 298 - 289 i386 ioprio_set sys_ioprio_set 299 - 290 i386 ioprio_get sys_ioprio_get 300 - 291 i386 inotify_init sys_inotify_init 301 - 292 i386 inotify_add_watch sys_inotify_add_watch 302 - 293 i386 inotify_rm_watch sys_inotify_rm_watch 303 - 294 i386 migrate_pages sys_migrate_pages 304 - 295 i386 openat sys_openat compat_sys_openat 305 - 296 i386 mkdirat sys_mkdirat 306 - 297 i386 mknodat sys_mknodat 307 - 298 i386 fchownat sys_fchownat 308 - 299 i386 futimesat sys_futimesat compat_sys_futimesat 309 - 300 i386 fstatat64 sys_fstatat64 compat_sys_x86_fstatat 310 - 301 i386 unlinkat sys_unlinkat 311 - 302 i386 renameat sys_renameat 312 - 303 i386 linkat sys_linkat 313 - 304 i386 symlinkat sys_symlinkat 314 - 305 i386 readlinkat sys_readlinkat 315 - 306 i386 fchmodat sys_fchmodat 316 - 307 i386 faccessat sys_faccessat 317 - 308 i386 pselect6 sys_pselect6 compat_sys_pselect6 318 - 309 i386 ppoll sys_ppoll compat_sys_ppoll 319 - 310 i386 unshare sys_unshare 320 - 311 i386 set_robust_list sys_set_robust_list compat_sys_set_robust_list 321 - 312 i386 get_robust_list sys_get_robust_list compat_sys_get_robust_list 322 - 313 i386 splice sys_splice 323 - 314 i386 sync_file_range sys_sync_file_range compat_sys_x86_sync_file_range 324 - 315 i386 tee sys_tee 325 - 316 i386 vmsplice sys_vmsplice compat_sys_vmsplice 326 - 317 i386 move_pages sys_move_pages compat_sys_move_pages 327 - 318 i386 getcpu sys_getcpu 328 - 319 i386 epoll_pwait sys_epoll_pwait 329 - 320 i386 utimensat sys_utimensat compat_sys_utimensat 330 - 321 i386 signalfd sys_signalfd compat_sys_signalfd 331 - 322 i386 timerfd_create sys_timerfd_create 332 - 323 i386 eventfd sys_eventfd 333 - 324 i386 fallocate sys_fallocate compat_sys_x86_fallocate 334 - 325 i386 timerfd_settime sys_timerfd_settime compat_sys_timerfd_settime 335 - 326 i386 timerfd_gettime sys_timerfd_gettime compat_sys_timerfd_gettime 336 - 327 i386 signalfd4 sys_signalfd4 compat_sys_signalfd4 337 - 328 i386 eventfd2 sys_eventfd2 338 - 329 i386 epoll_create1 sys_epoll_create1 339 - 330 i386 dup3 sys_dup3 340 - 331 i386 pipe2 sys_pipe2 341 - 332 i386 inotify_init1 sys_inotify_init1 342 - 333 i386 preadv sys_preadv compat_sys_preadv 343 - 334 i386 pwritev sys_pwritev compat_sys_pwritev 344 - 335 i386 rt_tgsigqueueinfo sys_rt_tgsigqueueinfo compat_sys_rt_tgsigqueueinfo 345 - 336 i386 perf_event_open sys_perf_event_open 346 - 337 i386 recvmmsg sys_recvmmsg compat_sys_recvmmsg 347 - 338 i386 fanotify_init sys_fanotify_init 348 - 339 i386 fanotify_mark sys_fanotify_mark compat_sys_fanotify_mark 349 - 340 i386 prlimit64 sys_prlimit64 350 - 341 i386 name_to_handle_at sys_name_to_handle_at 351 - 342 i386 open_by_handle_at sys_open_by_handle_at compat_sys_open_by_handle_at 352 - 343 i386 clock_adjtime sys_clock_adjtime compat_sys_clock_adjtime 353 - 344 i386 syncfs sys_syncfs 354 - 345 i386 sendmmsg sys_sendmmsg compat_sys_sendmmsg 355 - 346 i386 setns sys_setns 356 - 347 i386 process_vm_readv sys_process_vm_readv compat_sys_process_vm_readv 357 - 348 i386 process_vm_writev sys_process_vm_writev compat_sys_process_vm_writev 358 - 349 i386 kcmp sys_kcmp 359 - 350 i386 finit_module sys_finit_module 360 - 351 i386 sched_setattr sys_sched_setattr 361 - 352 i386 sched_getattr sys_sched_getattr 362 - 353 i386 renameat2 sys_renameat2 363 - 354 i386 seccomp sys_seccomp 364 - 355 i386 getrandom sys_getrandom 365 - 356 i386 memfd_create sys_memfd_create 366 - 357 i386 bpf sys_bpf 367 - 358 i386 execveat sys_execveat compat_sys_execveat 368 - 359 i386 socket sys_socket 369 - 360 i386 socketpair sys_socketpair 370 - 361 i386 bind sys_bind 371 - 362 i386 connect sys_connect 372 - 363 i386 listen sys_listen 373 - 364 i386 accept4 sys_accept4 374 - 365 i386 getsockopt sys_getsockopt compat_sys_getsockopt 375 - 366 i386 setsockopt sys_setsockopt compat_sys_setsockopt 376 - 367 i386 getsockname sys_getsockname 377 - 368 i386 getpeername sys_getpeername 378 - 369 i386 sendto sys_sendto 379 - 370 i386 sendmsg sys_sendmsg compat_sys_sendmsg 380 - 371 i386 recvfrom sys_recvfrom compat_sys_recvfrom 381 - 372 i386 recvmsg sys_recvmsg compat_sys_recvmsg 382 - 373 i386 shutdown sys_shutdown 383 - 374 i386 userfaultfd sys_userfaultfd 384 - 375 i386 membarrier sys_membarrier 385 - 376 i386 mlock2 sys_mlock2 386 - 377 i386 copy_file_range sys_copy_file_range 387 - 378 i386 preadv2 sys_preadv2 compat_sys_preadv2 388 - 379 i386 pwritev2 sys_pwritev2 compat_sys_pwritev2 389 - 380 i386 pkey_mprotect sys_pkey_mprotect 390 - 381 i386 pkey_alloc sys_pkey_alloc 391 - 382 i386 pkey_free sys_pkey_free 392 - 383 i386 statx sys_statx 393 - 384 i386 arch_prctl sys_arch_prctl compat_sys_arch_prctl 300 + 286 i386 add_key sys_add_key __ia32_sys_add_key 301 + 287 i386 request_key sys_request_key __ia32_sys_request_key 302 + 288 i386 keyctl sys_keyctl __ia32_compat_sys_keyctl 303 + 289 i386 ioprio_set sys_ioprio_set __ia32_sys_ioprio_set 304 + 290 i386 ioprio_get sys_ioprio_get __ia32_sys_ioprio_get 305 + 291 i386 inotify_init sys_inotify_init __ia32_sys_inotify_init 306 + 292 i386 inotify_add_watch sys_inotify_add_watch __ia32_sys_inotify_add_watch 307 + 293 i386 inotify_rm_watch sys_inotify_rm_watch __ia32_sys_inotify_rm_watch 308 + 294 i386 migrate_pages sys_migrate_pages __ia32_sys_migrate_pages 309 + 295 i386 openat sys_openat __ia32_compat_sys_openat 310 + 296 i386 mkdirat sys_mkdirat __ia32_sys_mkdirat 311 + 297 i386 mknodat sys_mknodat __ia32_sys_mknodat 312 + 298 i386 fchownat sys_fchownat __ia32_sys_fchownat 313 + 299 i386 futimesat sys_futimesat __ia32_compat_sys_futimesat 314 + 300 i386 fstatat64 sys_fstatat64 __ia32_compat_sys_x86_fstatat 315 + 301 i386 unlinkat sys_unlinkat __ia32_sys_unlinkat 316 + 302 i386 renameat sys_renameat __ia32_sys_renameat 317 + 303 i386 linkat sys_linkat __ia32_sys_linkat 318 + 304 i386 symlinkat sys_symlinkat __ia32_sys_symlinkat 319 + 305 i386 readlinkat sys_readlinkat __ia32_sys_readlinkat 320 + 306 i386 fchmodat sys_fchmodat __ia32_sys_fchmodat 321 + 307 i386 faccessat sys_faccessat __ia32_sys_faccessat 322 + 308 i386 pselect6 sys_pselect6 __ia32_compat_sys_pselect6 323 + 309 i386 ppoll sys_ppoll __ia32_compat_sys_ppoll 324 + 310 i386 unshare sys_unshare __ia32_sys_unshare 325 + 311 i386 set_robust_list sys_set_robust_list __ia32_compat_sys_set_robust_list 326 + 312 i386 get_robust_list sys_get_robust_list __ia32_compat_sys_get_robust_list 327 + 313 i386 splice sys_splice __ia32_sys_splice 328 + 314 i386 sync_file_range sys_sync_file_range __ia32_compat_sys_x86_sync_file_range 329 + 315 i386 tee sys_tee __ia32_sys_tee 330 + 316 i386 vmsplice sys_vmsplice __ia32_compat_sys_vmsplice 331 + 317 i386 move_pages sys_move_pages __ia32_compat_sys_move_pages 332 + 318 i386 getcpu sys_getcpu __ia32_sys_getcpu 333 + 319 i386 epoll_pwait sys_epoll_pwait __ia32_sys_epoll_pwait 334 + 320 i386 utimensat sys_utimensat __ia32_compat_sys_utimensat 335 + 321 i386 signalfd sys_signalfd __ia32_compat_sys_signalfd 336 + 322 i386 timerfd_create sys_timerfd_create __ia32_sys_timerfd_create 337 + 323 i386 eventfd sys_eventfd __ia32_sys_eventfd 338 + 324 i386 fallocate sys_fallocate __ia32_compat_sys_x86_fallocate 339 + 325 i386 timerfd_settime sys_timerfd_settime __ia32_compat_sys_timerfd_settime 340 + 326 i386 timerfd_gettime sys_timerfd_gettime __ia32_compat_sys_timerfd_gettime 341 + 327 i386 signalfd4 sys_signalfd4 __ia32_compat_sys_signalfd4 342 + 328 i386 eventfd2 sys_eventfd2 __ia32_sys_eventfd2 343 + 329 i386 epoll_create1 sys_epoll_create1 __ia32_sys_epoll_create1 344 + 330 i386 dup3 sys_dup3 __ia32_sys_dup3 345 + 331 i386 pipe2 sys_pipe2 __ia32_sys_pipe2 346 + 332 i386 inotify_init1 sys_inotify_init1 __ia32_sys_inotify_init1 347 + 333 i386 preadv sys_preadv __ia32_compat_sys_preadv 348 + 334 i386 pwritev sys_pwritev __ia32_compat_sys_pwritev 349 + 335 i386 rt_tgsigqueueinfo sys_rt_tgsigqueueinfo __ia32_compat_sys_rt_tgsigqueueinfo 350 + 336 i386 perf_event_open sys_perf_event_open __ia32_sys_perf_event_open 351 + 337 i386 recvmmsg sys_recvmmsg __ia32_compat_sys_recvmmsg 352 + 338 i386 fanotify_init sys_fanotify_init __ia32_sys_fanotify_init 353 + 339 i386 fanotify_mark sys_fanotify_mark __ia32_compat_sys_fanotify_mark 354 + 340 i386 prlimit64 sys_prlimit64 __ia32_sys_prlimit64 355 + 341 i386 name_to_handle_at sys_name_to_handle_at __ia32_sys_name_to_handle_at 356 + 342 i386 open_by_handle_at sys_open_by_handle_at __ia32_compat_sys_open_by_handle_at 357 + 343 i386 clock_adjtime sys_clock_adjtime __ia32_compat_sys_clock_adjtime 358 + 344 i386 syncfs sys_syncfs __ia32_sys_syncfs 359 + 345 i386 sendmmsg sys_sendmmsg __ia32_compat_sys_sendmmsg 360 + 346 i386 setns sys_setns __ia32_sys_setns 361 + 347 i386 process_vm_readv sys_process_vm_readv __ia32_compat_sys_process_vm_readv 362 + 348 i386 process_vm_writev sys_process_vm_writev __ia32_compat_sys_process_vm_writev 363 + 349 i386 kcmp sys_kcmp __ia32_sys_kcmp 364 + 350 i386 finit_module sys_finit_module __ia32_sys_finit_module 365 + 351 i386 sched_setattr sys_sched_setattr __ia32_sys_sched_setattr 366 + 352 i386 sched_getattr sys_sched_getattr __ia32_sys_sched_getattr 367 + 353 i386 renameat2 sys_renameat2 __ia32_sys_renameat2 368 + 354 i386 seccomp sys_seccomp __ia32_sys_seccomp 369 + 355 i386 getrandom sys_getrandom __ia32_sys_getrandom 370 + 356 i386 memfd_create sys_memfd_create __ia32_sys_memfd_create 371 + 357 i386 bpf sys_bpf __ia32_sys_bpf 372 + 358 i386 execveat sys_execveat __ia32_compat_sys_execveat 373 + 359 i386 socket sys_socket __ia32_sys_socket 374 + 360 i386 socketpair sys_socketpair __ia32_sys_socketpair 375 + 361 i386 bind sys_bind __ia32_sys_bind 376 + 362 i386 connect sys_connect __ia32_sys_connect 377 + 363 i386 listen sys_listen __ia32_sys_listen 378 + 364 i386 accept4 sys_accept4 __ia32_sys_accept4 379 + 365 i386 getsockopt sys_getsockopt __ia32_compat_sys_getsockopt 380 + 366 i386 setsockopt sys_setsockopt __ia32_compat_sys_setsockopt 381 + 367 i386 getsockname sys_getsockname __ia32_sys_getsockname 382 + 368 i386 getpeername sys_getpeername __ia32_sys_getpeername 383 + 369 i386 sendto sys_sendto __ia32_sys_sendto 384 + 370 i386 sendmsg sys_sendmsg __ia32_compat_sys_sendmsg 385 + 371 i386 recvfrom sys_recvfrom __ia32_compat_sys_recvfrom 386 + 372 i386 recvmsg sys_recvmsg __ia32_compat_sys_recvmsg 387 + 373 i386 shutdown sys_shutdown __ia32_sys_shutdown 388 + 374 i386 userfaultfd sys_userfaultfd __ia32_sys_userfaultfd 389 + 375 i386 membarrier sys_membarrier __ia32_sys_membarrier 390 + 376 i386 mlock2 sys_mlock2 __ia32_sys_mlock2 391 + 377 i386 copy_file_range sys_copy_file_range __ia32_sys_copy_file_range 392 + 378 i386 preadv2 sys_preadv2 __ia32_compat_sys_preadv2 393 + 379 i386 pwritev2 sys_pwritev2 __ia32_compat_sys_pwritev2 394 + 380 i386 pkey_mprotect sys_pkey_mprotect __ia32_sys_pkey_mprotect 395 + 381 i386 pkey_alloc sys_pkey_alloc __ia32_sys_pkey_alloc 396 + 382 i386 pkey_free sys_pkey_free __ia32_sys_pkey_free 397 + 383 i386 statx sys_statx __ia32_sys_statx 398 + 384 i386 arch_prctl sys_arch_prctl __ia32_compat_sys_arch_prctl
+358 -354
arch/x86/entry/syscalls/syscall_64.tbl
··· 4 4 # The format is: 5 5 # <number> <abi> <name> <entry point> 6 6 # 7 + # The __x64_sys_*() stubs are created on-the-fly for sys_*() system calls 8 + # 7 9 # The abi is "common", "64" or "x32" for this file. 8 10 # 9 - 0 common read sys_read 10 - 1 common write sys_write 11 - 2 common open sys_open 12 - 3 common close sys_close 13 - 4 common stat sys_newstat 14 - 5 common fstat sys_newfstat 15 - 6 common lstat sys_newlstat 16 - 7 common poll sys_poll 17 - 8 common lseek sys_lseek 18 - 9 common mmap sys_mmap 19 - 10 common mprotect sys_mprotect 20 - 11 common munmap sys_munmap 21 - 12 common brk sys_brk 22 - 13 64 rt_sigaction sys_rt_sigaction 23 - 14 common rt_sigprocmask sys_rt_sigprocmask 24 - 15 64 rt_sigreturn sys_rt_sigreturn/ptregs 25 - 16 64 ioctl sys_ioctl 26 - 17 common pread64 sys_pread64 27 - 18 common pwrite64 sys_pwrite64 28 - 19 64 readv sys_readv 29 - 20 64 writev sys_writev 30 - 21 common access sys_access 31 - 22 common pipe sys_pipe 32 - 23 common select sys_select 33 - 24 common sched_yield sys_sched_yield 34 - 25 common mremap sys_mremap 35 - 26 common msync sys_msync 36 - 27 common mincore sys_mincore 37 - 28 common madvise sys_madvise 38 - 29 common shmget sys_shmget 39 - 30 common shmat sys_shmat 40 - 31 common shmctl sys_shmctl 41 - 32 common dup sys_dup 42 - 33 common dup2 sys_dup2 43 - 34 common pause sys_pause 44 - 35 common nanosleep sys_nanosleep 45 - 36 common getitimer sys_getitimer 46 - 37 common alarm sys_alarm 47 - 38 common setitimer sys_setitimer 48 - 39 common getpid sys_getpid 49 - 40 common sendfile sys_sendfile64 50 - 41 common socket sys_socket 51 - 42 common connect sys_connect 52 - 43 common accept sys_accept 53 - 44 common sendto sys_sendto 54 - 45 64 recvfrom sys_recvfrom 55 - 46 64 sendmsg sys_sendmsg 56 - 47 64 recvmsg sys_recvmsg 57 - 48 common shutdown sys_shutdown 58 - 49 common bind sys_bind 59 - 50 common listen sys_listen 60 - 51 common getsockname sys_getsockname 61 - 52 common getpeername sys_getpeername 62 - 53 common socketpair sys_socketpair 63 - 54 64 setsockopt sys_setsockopt 64 - 55 64 getsockopt sys_getsockopt 65 - 56 common clone sys_clone/ptregs 66 - 57 common fork sys_fork/ptregs 67 - 58 common vfork sys_vfork/ptregs 68 - 59 64 execve sys_execve/ptregs 69 - 60 common exit sys_exit 70 - 61 common wait4 sys_wait4 71 - 62 common kill sys_kill 72 - 63 common uname sys_newuname 73 - 64 common semget sys_semget 74 - 65 common semop sys_semop 75 - 66 common semctl sys_semctl 76 - 67 common shmdt sys_shmdt 77 - 68 common msgget sys_msgget 78 - 69 common msgsnd sys_msgsnd 79 - 70 common msgrcv sys_msgrcv 80 - 71 common msgctl sys_msgctl 81 - 72 common fcntl sys_fcntl 82 - 73 common flock sys_flock 83 - 74 common fsync sys_fsync 84 - 75 common fdatasync sys_fdatasync 85 - 76 common truncate sys_truncate 86 - 77 common ftruncate sys_ftruncate 87 - 78 common getdents sys_getdents 88 - 79 common getcwd sys_getcwd 89 - 80 common chdir sys_chdir 90 - 81 common fchdir sys_fchdir 91 - 82 common rename sys_rename 92 - 83 common mkdir sys_mkdir 93 - 84 common rmdir sys_rmdir 94 - 85 common creat sys_creat 95 - 86 common link sys_link 96 - 87 common unlink sys_unlink 97 - 88 common symlink sys_symlink 98 - 89 common readlink sys_readlink 99 - 90 common chmod sys_chmod 100 - 91 common fchmod sys_fchmod 101 - 92 common chown sys_chown 102 - 93 common fchown sys_fchown 103 - 94 common lchown sys_lchown 104 - 95 common umask sys_umask 105 - 96 common gettimeofday sys_gettimeofday 106 - 97 common getrlimit sys_getrlimit 107 - 98 common getrusage sys_getrusage 108 - 99 common sysinfo sys_sysinfo 109 - 100 common times sys_times 110 - 101 64 ptrace sys_ptrace 111 - 102 common getuid sys_getuid 112 - 103 common syslog sys_syslog 113 - 104 common getgid sys_getgid 114 - 105 common setuid sys_setuid 115 - 106 common setgid sys_setgid 116 - 107 common geteuid sys_geteuid 117 - 108 common getegid sys_getegid 118 - 109 common setpgid sys_setpgid 119 - 110 common getppid sys_getppid 120 - 111 common getpgrp sys_getpgrp 121 - 112 common setsid sys_setsid 122 - 113 common setreuid sys_setreuid 123 - 114 common setregid sys_setregid 124 - 115 common getgroups sys_getgroups 125 - 116 common setgroups sys_setgroups 126 - 117 common setresuid sys_setresuid 127 - 118 common getresuid sys_getresuid 128 - 119 common setresgid sys_setresgid 129 - 120 common getresgid sys_getresgid 130 - 121 common getpgid sys_getpgid 131 - 122 common setfsuid sys_setfsuid 132 - 123 common setfsgid sys_setfsgid 133 - 124 common getsid sys_getsid 134 - 125 common capget sys_capget 135 - 126 common capset sys_capset 136 - 127 64 rt_sigpending sys_rt_sigpending 137 - 128 64 rt_sigtimedwait sys_rt_sigtimedwait 138 - 129 64 rt_sigqueueinfo sys_rt_sigqueueinfo 139 - 130 common rt_sigsuspend sys_rt_sigsuspend 140 - 131 64 sigaltstack sys_sigaltstack 141 - 132 common utime sys_utime 142 - 133 common mknod sys_mknod 11 + 0 common read __x64_sys_read 12 + 1 common write __x64_sys_write 13 + 2 common open __x64_sys_open 14 + 3 common close __x64_sys_close 15 + 4 common stat __x64_sys_newstat 16 + 5 common fstat __x64_sys_newfstat 17 + 6 common lstat __x64_sys_newlstat 18 + 7 common poll __x64_sys_poll 19 + 8 common lseek __x64_sys_lseek 20 + 9 common mmap __x64_sys_mmap 21 + 10 common mprotect __x64_sys_mprotect 22 + 11 common munmap __x64_sys_munmap 23 + 12 common brk __x64_sys_brk 24 + 13 64 rt_sigaction __x64_sys_rt_sigaction 25 + 14 common rt_sigprocmask __x64_sys_rt_sigprocmask 26 + 15 64 rt_sigreturn __x64_sys_rt_sigreturn/ptregs 27 + 16 64 ioctl __x64_sys_ioctl 28 + 17 common pread64 __x64_sys_pread64 29 + 18 common pwrite64 __x64_sys_pwrite64 30 + 19 64 readv __x64_sys_readv 31 + 20 64 writev __x64_sys_writev 32 + 21 common access __x64_sys_access 33 + 22 common pipe __x64_sys_pipe 34 + 23 common select __x64_sys_select 35 + 24 common sched_yield __x64_sys_sched_yield 36 + 25 common mremap __x64_sys_mremap 37 + 26 common msync __x64_sys_msync 38 + 27 common mincore __x64_sys_mincore 39 + 28 common madvise __x64_sys_madvise 40 + 29 common shmget __x64_sys_shmget 41 + 30 common shmat __x64_sys_shmat 42 + 31 common shmctl __x64_sys_shmctl 43 + 32 common dup __x64_sys_dup 44 + 33 common dup2 __x64_sys_dup2 45 + 34 common pause __x64_sys_pause 46 + 35 common nanosleep __x64_sys_nanosleep 47 + 36 common getitimer __x64_sys_getitimer 48 + 37 common alarm __x64_sys_alarm 49 + 38 common setitimer __x64_sys_setitimer 50 + 39 common getpid __x64_sys_getpid 51 + 40 common sendfile __x64_sys_sendfile64 52 + 41 common socket __x64_sys_socket 53 + 42 common connect __x64_sys_connect 54 + 43 common accept __x64_sys_accept 55 + 44 common sendto __x64_sys_sendto 56 + 45 64 recvfrom __x64_sys_recvfrom 57 + 46 64 sendmsg __x64_sys_sendmsg 58 + 47 64 recvmsg __x64_sys_recvmsg 59 + 48 common shutdown __x64_sys_shutdown 60 + 49 common bind __x64_sys_bind 61 + 50 common listen __x64_sys_listen 62 + 51 common getsockname __x64_sys_getsockname 63 + 52 common getpeername __x64_sys_getpeername 64 + 53 common socketpair __x64_sys_socketpair 65 + 54 64 setsockopt __x64_sys_setsockopt 66 + 55 64 getsockopt __x64_sys_getsockopt 67 + 56 common clone __x64_sys_clone/ptregs 68 + 57 common fork __x64_sys_fork/ptregs 69 + 58 common vfork __x64_sys_vfork/ptregs 70 + 59 64 execve __x64_sys_execve/ptregs 71 + 60 common exit __x64_sys_exit 72 + 61 common wait4 __x64_sys_wait4 73 + 62 common kill __x64_sys_kill 74 + 63 common uname __x64_sys_newuname 75 + 64 common semget __x64_sys_semget 76 + 65 common semop __x64_sys_semop 77 + 66 common semctl __x64_sys_semctl 78 + 67 common shmdt __x64_sys_shmdt 79 + 68 common msgget __x64_sys_msgget 80 + 69 common msgsnd __x64_sys_msgsnd 81 + 70 common msgrcv __x64_sys_msgrcv 82 + 71 common msgctl __x64_sys_msgctl 83 + 72 common fcntl __x64_sys_fcntl 84 + 73 common flock __x64_sys_flock 85 + 74 common fsync __x64_sys_fsync 86 + 75 common fdatasync __x64_sys_fdatasync 87 + 76 common truncate __x64_sys_truncate 88 + 77 common ftruncate __x64_sys_ftruncate 89 + 78 common getdents __x64_sys_getdents 90 + 79 common getcwd __x64_sys_getcwd 91 + 80 common chdir __x64_sys_chdir 92 + 81 common fchdir __x64_sys_fchdir 93 + 82 common rename __x64_sys_rename 94 + 83 common mkdir __x64_sys_mkdir 95 + 84 common rmdir __x64_sys_rmdir 96 + 85 common creat __x64_sys_creat 97 + 86 common link __x64_sys_link 98 + 87 common unlink __x64_sys_unlink 99 + 88 common symlink __x64_sys_symlink 100 + 89 common readlink __x64_sys_readlink 101 + 90 common chmod __x64_sys_chmod 102 + 91 common fchmod __x64_sys_fchmod 103 + 92 common chown __x64_sys_chown 104 + 93 common fchown __x64_sys_fchown 105 + 94 common lchown __x64_sys_lchown 106 + 95 common umask __x64_sys_umask 107 + 96 common gettimeofday __x64_sys_gettimeofday 108 + 97 common getrlimit __x64_sys_getrlimit 109 + 98 common getrusage __x64_sys_getrusage 110 + 99 common sysinfo __x64_sys_sysinfo 111 + 100 common times __x64_sys_times 112 + 101 64 ptrace __x64_sys_ptrace 113 + 102 common getuid __x64_sys_getuid 114 + 103 common syslog __x64_sys_syslog 115 + 104 common getgid __x64_sys_getgid 116 + 105 common setuid __x64_sys_setuid 117 + 106 common setgid __x64_sys_setgid 118 + 107 common geteuid __x64_sys_geteuid 119 + 108 common getegid __x64_sys_getegid 120 + 109 common setpgid __x64_sys_setpgid 121 + 110 common getppid __x64_sys_getppid 122 + 111 common getpgrp __x64_sys_getpgrp 123 + 112 common setsid __x64_sys_setsid 124 + 113 common setreuid __x64_sys_setreuid 125 + 114 common setregid __x64_sys_setregid 126 + 115 common getgroups __x64_sys_getgroups 127 + 116 common setgroups __x64_sys_setgroups 128 + 117 common setresuid __x64_sys_setresuid 129 + 118 common getresuid __x64_sys_getresuid 130 + 119 common setresgid __x64_sys_setresgid 131 + 120 common getresgid __x64_sys_getresgid 132 + 121 common getpgid __x64_sys_getpgid 133 + 122 common setfsuid __x64_sys_setfsuid 134 + 123 common setfsgid __x64_sys_setfsgid 135 + 124 common getsid __x64_sys_getsid 136 + 125 common capget __x64_sys_capget 137 + 126 common capset __x64_sys_capset 138 + 127 64 rt_sigpending __x64_sys_rt_sigpending 139 + 128 64 rt_sigtimedwait __x64_sys_rt_sigtimedwait 140 + 129 64 rt_sigqueueinfo __x64_sys_rt_sigqueueinfo 141 + 130 common rt_sigsuspend __x64_sys_rt_sigsuspend 142 + 131 64 sigaltstack __x64_sys_sigaltstack 143 + 132 common utime __x64_sys_utime 144 + 133 common mknod __x64_sys_mknod 143 145 134 64 uselib 144 - 135 common personality sys_personality 145 - 136 common ustat sys_ustat 146 - 137 common statfs sys_statfs 147 - 138 common fstatfs sys_fstatfs 148 - 139 common sysfs sys_sysfs 149 - 140 common getpriority sys_getpriority 150 - 141 common setpriority sys_setpriority 151 - 142 common sched_setparam sys_sched_setparam 152 - 143 common sched_getparam sys_sched_getparam 153 - 144 common sched_setscheduler sys_sched_setscheduler 154 - 145 common sched_getscheduler sys_sched_getscheduler 155 - 146 common sched_get_priority_max sys_sched_get_priority_max 156 - 147 common sched_get_priority_min sys_sched_get_priority_min 157 - 148 common sched_rr_get_interval sys_sched_rr_get_interval 158 - 149 common mlock sys_mlock 159 - 150 common munlock sys_munlock 160 - 151 common mlockall sys_mlockall 161 - 152 common munlockall sys_munlockall 162 - 153 common vhangup sys_vhangup 163 - 154 common modify_ldt sys_modify_ldt 164 - 155 common pivot_root sys_pivot_root 165 - 156 64 _sysctl sys_sysctl 166 - 157 common prctl sys_prctl 167 - 158 common arch_prctl sys_arch_prctl 168 - 159 common adjtimex sys_adjtimex 169 - 160 common setrlimit sys_setrlimit 170 - 161 common chroot sys_chroot 171 - 162 common sync sys_sync 172 - 163 common acct sys_acct 173 - 164 common settimeofday sys_settimeofday 174 - 165 common mount sys_mount 175 - 166 common umount2 sys_umount 176 - 167 common swapon sys_swapon 177 - 168 common swapoff sys_swapoff 178 - 169 common reboot sys_reboot 179 - 170 common sethostname sys_sethostname 180 - 171 common setdomainname sys_setdomainname 181 - 172 common iopl sys_iopl/ptregs 182 - 173 common ioperm sys_ioperm 146 + 135 common personality __x64_sys_personality 147 + 136 common ustat __x64_sys_ustat 148 + 137 common statfs __x64_sys_statfs 149 + 138 common fstatfs __x64_sys_fstatfs 150 + 139 common sysfs __x64_sys_sysfs 151 + 140 common getpriority __x64_sys_getpriority 152 + 141 common setpriority __x64_sys_setpriority 153 + 142 common sched_setparam __x64_sys_sched_setparam 154 + 143 common sched_getparam __x64_sys_sched_getparam 155 + 144 common sched_setscheduler __x64_sys_sched_setscheduler 156 + 145 common sched_getscheduler __x64_sys_sched_getscheduler 157 + 146 common sched_get_priority_max __x64_sys_sched_get_priority_max 158 + 147 common sched_get_priority_min __x64_sys_sched_get_priority_min 159 + 148 common sched_rr_get_interval __x64_sys_sched_rr_get_interval 160 + 149 common mlock __x64_sys_mlock 161 + 150 common munlock __x64_sys_munlock 162 + 151 common mlockall __x64_sys_mlockall 163 + 152 common munlockall __x64_sys_munlockall 164 + 153 common vhangup __x64_sys_vhangup 165 + 154 common modify_ldt __x64_sys_modify_ldt 166 + 155 common pivot_root __x64_sys_pivot_root 167 + 156 64 _sysctl __x64_sys_sysctl 168 + 157 common prctl __x64_sys_prctl 169 + 158 common arch_prctl __x64_sys_arch_prctl 170 + 159 common adjtimex __x64_sys_adjtimex 171 + 160 common setrlimit __x64_sys_setrlimit 172 + 161 common chroot __x64_sys_chroot 173 + 162 common sync __x64_sys_sync 174 + 163 common acct __x64_sys_acct 175 + 164 common settimeofday __x64_sys_settimeofday 176 + 165 common mount __x64_sys_mount 177 + 166 common umount2 __x64_sys_umount 178 + 167 common swapon __x64_sys_swapon 179 + 168 common swapoff __x64_sys_swapoff 180 + 169 common reboot __x64_sys_reboot 181 + 170 common sethostname __x64_sys_sethostname 182 + 171 common setdomainname __x64_sys_setdomainname 183 + 172 common iopl __x64_sys_iopl/ptregs 184 + 173 common ioperm __x64_sys_ioperm 183 185 174 64 create_module 184 - 175 common init_module sys_init_module 185 - 176 common delete_module sys_delete_module 186 + 175 common init_module __x64_sys_init_module 187 + 176 common delete_module __x64_sys_delete_module 186 188 177 64 get_kernel_syms 187 189 178 64 query_module 188 - 179 common quotactl sys_quotactl 190 + 179 common quotactl __x64_sys_quotactl 189 191 180 64 nfsservctl 190 192 181 common getpmsg 191 193 182 common putpmsg 192 194 183 common afs_syscall 193 195 184 common tuxcall 194 196 185 common security 195 - 186 common gettid sys_gettid 196 - 187 common readahead sys_readahead 197 - 188 common setxattr sys_setxattr 198 - 189 common lsetxattr sys_lsetxattr 199 - 190 common fsetxattr sys_fsetxattr 200 - 191 common getxattr sys_getxattr 201 - 192 common lgetxattr sys_lgetxattr 202 - 193 common fgetxattr sys_fgetxattr 203 - 194 common listxattr sys_listxattr 204 - 195 common llistxattr sys_llistxattr 205 - 196 common flistxattr sys_flistxattr 206 - 197 common removexattr sys_removexattr 207 - 198 common lremovexattr sys_lremovexattr 208 - 199 common fremovexattr sys_fremovexattr 209 - 200 common tkill sys_tkill 210 - 201 common time sys_time 211 - 202 common futex sys_futex 212 - 203 common sched_setaffinity sys_sched_setaffinity 213 - 204 common sched_getaffinity sys_sched_getaffinity 197 + 186 common gettid __x64_sys_gettid 198 + 187 common readahead __x64_sys_readahead 199 + 188 common setxattr __x64_sys_setxattr 200 + 189 common lsetxattr __x64_sys_lsetxattr 201 + 190 common fsetxattr __x64_sys_fsetxattr 202 + 191 common getxattr __x64_sys_getxattr 203 + 192 common lgetxattr __x64_sys_lgetxattr 204 + 193 common fgetxattr __x64_sys_fgetxattr 205 + 194 common listxattr __x64_sys_listxattr 206 + 195 common llistxattr __x64_sys_llistxattr 207 + 196 common flistxattr __x64_sys_flistxattr 208 + 197 common removexattr __x64_sys_removexattr 209 + 198 common lremovexattr __x64_sys_lremovexattr 210 + 199 common fremovexattr __x64_sys_fremovexattr 211 + 200 common tkill __x64_sys_tkill 212 + 201 common time __x64_sys_time 213 + 202 common futex __x64_sys_futex 214 + 203 common sched_setaffinity __x64_sys_sched_setaffinity 215 + 204 common sched_getaffinity __x64_sys_sched_getaffinity 214 216 205 64 set_thread_area 215 - 206 64 io_setup sys_io_setup 216 - 207 common io_destroy sys_io_destroy 217 - 208 common io_getevents sys_io_getevents 218 - 209 64 io_submit sys_io_submit 219 - 210 common io_cancel sys_io_cancel 217 + 206 64 io_setup __x64_sys_io_setup 218 + 207 common io_destroy __x64_sys_io_destroy 219 + 208 common io_getevents __x64_sys_io_getevents 220 + 209 64 io_submit __x64_sys_io_submit 221 + 210 common io_cancel __x64_sys_io_cancel 220 222 211 64 get_thread_area 221 - 212 common lookup_dcookie sys_lookup_dcookie 222 - 213 common epoll_create sys_epoll_create 223 + 212 common lookup_dcookie __x64_sys_lookup_dcookie 224 + 213 common epoll_create __x64_sys_epoll_create 223 225 214 64 epoll_ctl_old 224 226 215 64 epoll_wait_old 225 - 216 common remap_file_pages sys_remap_file_pages 226 - 217 common getdents64 sys_getdents64 227 - 218 common set_tid_address sys_set_tid_address 228 - 219 common restart_syscall sys_restart_syscall 229 - 220 common semtimedop sys_semtimedop 230 - 221 common fadvise64 sys_fadvise64 231 - 222 64 timer_create sys_timer_create 232 - 223 common timer_settime sys_timer_settime 233 - 224 common timer_gettime sys_timer_gettime 234 - 225 common timer_getoverrun sys_timer_getoverrun 235 - 226 common timer_delete sys_timer_delete 236 - 227 common clock_settime sys_clock_settime 237 - 228 common clock_gettime sys_clock_gettime 238 - 229 common clock_getres sys_clock_getres 239 - 230 common clock_nanosleep sys_clock_nanosleep 240 - 231 common exit_group sys_exit_group 241 - 232 common epoll_wait sys_epoll_wait 242 - 233 common epoll_ctl sys_epoll_ctl 243 - 234 common tgkill sys_tgkill 244 - 235 common utimes sys_utimes 227 + 216 common remap_file_pages __x64_sys_remap_file_pages 228 + 217 common getdents64 __x64_sys_getdents64 229 + 218 common set_tid_address __x64_sys_set_tid_address 230 + 219 common restart_syscall __x64_sys_restart_syscall 231 + 220 common semtimedop __x64_sys_semtimedop 232 + 221 common fadvise64 __x64_sys_fadvise64 233 + 222 64 timer_create __x64_sys_timer_create 234 + 223 common timer_settime __x64_sys_timer_settime 235 + 224 common timer_gettime __x64_sys_timer_gettime 236 + 225 common timer_getoverrun __x64_sys_timer_getoverrun 237 + 226 common timer_delete __x64_sys_timer_delete 238 + 227 common clock_settime __x64_sys_clock_settime 239 + 228 common clock_gettime __x64_sys_clock_gettime 240 + 229 common clock_getres __x64_sys_clock_getres 241 + 230 common clock_nanosleep __x64_sys_clock_nanosleep 242 + 231 common exit_group __x64_sys_exit_group 243 + 232 common epoll_wait __x64_sys_epoll_wait 244 + 233 common epoll_ctl __x64_sys_epoll_ctl 245 + 234 common tgkill __x64_sys_tgkill 246 + 235 common utimes __x64_sys_utimes 245 247 236 64 vserver 246 - 237 common mbind sys_mbind 247 - 238 common set_mempolicy sys_set_mempolicy 248 - 239 common get_mempolicy sys_get_mempolicy 249 - 240 common mq_open sys_mq_open 250 - 241 common mq_unlink sys_mq_unlink 251 - 242 common mq_timedsend sys_mq_timedsend 252 - 243 common mq_timedreceive sys_mq_timedreceive 253 - 244 64 mq_notify sys_mq_notify 254 - 245 common mq_getsetattr sys_mq_getsetattr 255 - 246 64 kexec_load sys_kexec_load 256 - 247 64 waitid sys_waitid 257 - 248 common add_key sys_add_key 258 - 249 common request_key sys_request_key 259 - 250 common keyctl sys_keyctl 260 - 251 common ioprio_set sys_ioprio_set 261 - 252 common ioprio_get sys_ioprio_get 262 - 253 common inotify_init sys_inotify_init 263 - 254 common inotify_add_watch sys_inotify_add_watch 264 - 255 common inotify_rm_watch sys_inotify_rm_watch 265 - 256 common migrate_pages sys_migrate_pages 266 - 257 common openat sys_openat 267 - 258 common mkdirat sys_mkdirat 268 - 259 common mknodat sys_mknodat 269 - 260 common fchownat sys_fchownat 270 - 261 common futimesat sys_futimesat 271 - 262 common newfstatat sys_newfstatat 272 - 263 common unlinkat sys_unlinkat 273 - 264 common renameat sys_renameat 274 - 265 common linkat sys_linkat 275 - 266 common symlinkat sys_symlinkat 276 - 267 common readlinkat sys_readlinkat 277 - 268 common fchmodat sys_fchmodat 278 - 269 common faccessat sys_faccessat 279 - 270 common pselect6 sys_pselect6 280 - 271 common ppoll sys_ppoll 281 - 272 common unshare sys_unshare 282 - 273 64 set_robust_list sys_set_robust_list 283 - 274 64 get_robust_list sys_get_robust_list 284 - 275 common splice sys_splice 285 - 276 common tee sys_tee 286 - 277 common sync_file_range sys_sync_file_range 287 - 278 64 vmsplice sys_vmsplice 288 - 279 64 move_pages sys_move_pages 289 - 280 common utimensat sys_utimensat 290 - 281 common epoll_pwait sys_epoll_pwait 291 - 282 common signalfd sys_signalfd 292 - 283 common timerfd_create sys_timerfd_create 293 - 284 common eventfd sys_eventfd 294 - 285 common fallocate sys_fallocate 295 - 286 common timerfd_settime sys_timerfd_settime 296 - 287 common timerfd_gettime sys_timerfd_gettime 297 - 288 common accept4 sys_accept4 298 - 289 common signalfd4 sys_signalfd4 299 - 290 common eventfd2 sys_eventfd2 300 - 291 common epoll_create1 sys_epoll_create1 301 - 292 common dup3 sys_dup3 302 - 293 common pipe2 sys_pipe2 303 - 294 common inotify_init1 sys_inotify_init1 304 - 295 64 preadv sys_preadv 305 - 296 64 pwritev sys_pwritev 306 - 297 64 rt_tgsigqueueinfo sys_rt_tgsigqueueinfo 307 - 298 common perf_event_open sys_perf_event_open 308 - 299 64 recvmmsg sys_recvmmsg 309 - 300 common fanotify_init sys_fanotify_init 310 - 301 common fanotify_mark sys_fanotify_mark 311 - 302 common prlimit64 sys_prlimit64 312 - 303 common name_to_handle_at sys_name_to_handle_at 313 - 304 common open_by_handle_at sys_open_by_handle_at 314 - 305 common clock_adjtime sys_clock_adjtime 315 - 306 common syncfs sys_syncfs 316 - 307 64 sendmmsg sys_sendmmsg 317 - 308 common setns sys_setns 318 - 309 common getcpu sys_getcpu 319 - 310 64 process_vm_readv sys_process_vm_readv 320 - 311 64 process_vm_writev sys_process_vm_writev 321 - 312 common kcmp sys_kcmp 322 - 313 common finit_module sys_finit_module 323 - 314 common sched_setattr sys_sched_setattr 324 - 315 common sched_getattr sys_sched_getattr 325 - 316 common renameat2 sys_renameat2 326 - 317 common seccomp sys_seccomp 327 - 318 common getrandom sys_getrandom 328 - 319 common memfd_create sys_memfd_create 329 - 320 common kexec_file_load sys_kexec_file_load 330 - 321 common bpf sys_bpf 331 - 322 64 execveat sys_execveat/ptregs 332 - 323 common userfaultfd sys_userfaultfd 333 - 324 common membarrier sys_membarrier 334 - 325 common mlock2 sys_mlock2 335 - 326 common copy_file_range sys_copy_file_range 336 - 327 64 preadv2 sys_preadv2 337 - 328 64 pwritev2 sys_pwritev2 338 - 329 common pkey_mprotect sys_pkey_mprotect 339 - 330 common pkey_alloc sys_pkey_alloc 340 - 331 common pkey_free sys_pkey_free 341 - 332 common statx sys_statx 248 + 237 common mbind __x64_sys_mbind 249 + 238 common set_mempolicy __x64_sys_set_mempolicy 250 + 239 common get_mempolicy __x64_sys_get_mempolicy 251 + 240 common mq_open __x64_sys_mq_open 252 + 241 common mq_unlink __x64_sys_mq_unlink 253 + 242 common mq_timedsend __x64_sys_mq_timedsend 254 + 243 common mq_timedreceive __x64_sys_mq_timedreceive 255 + 244 64 mq_notify __x64_sys_mq_notify 256 + 245 common mq_getsetattr __x64_sys_mq_getsetattr 257 + 246 64 kexec_load __x64_sys_kexec_load 258 + 247 64 waitid __x64_sys_waitid 259 + 248 common add_key __x64_sys_add_key 260 + 249 common request_key __x64_sys_request_key 261 + 250 common keyctl __x64_sys_keyctl 262 + 251 common ioprio_set __x64_sys_ioprio_set 263 + 252 common ioprio_get __x64_sys_ioprio_get 264 + 253 common inotify_init __x64_sys_inotify_init 265 + 254 common inotify_add_watch __x64_sys_inotify_add_watch 266 + 255 common inotify_rm_watch __x64_sys_inotify_rm_watch 267 + 256 common migrate_pages __x64_sys_migrate_pages 268 + 257 common openat __x64_sys_openat 269 + 258 common mkdirat __x64_sys_mkdirat 270 + 259 common mknodat __x64_sys_mknodat 271 + 260 common fchownat __x64_sys_fchownat 272 + 261 common futimesat __x64_sys_futimesat 273 + 262 common newfstatat __x64_sys_newfstatat 274 + 263 common unlinkat __x64_sys_unlinkat 275 + 264 common renameat __x64_sys_renameat 276 + 265 common linkat __x64_sys_linkat 277 + 266 common symlinkat __x64_sys_symlinkat 278 + 267 common readlinkat __x64_sys_readlinkat 279 + 268 common fchmodat __x64_sys_fchmodat 280 + 269 common faccessat __x64_sys_faccessat 281 + 270 common pselect6 __x64_sys_pselect6 282 + 271 common ppoll __x64_sys_ppoll 283 + 272 common unshare __x64_sys_unshare 284 + 273 64 set_robust_list __x64_sys_set_robust_list 285 + 274 64 get_robust_list __x64_sys_get_robust_list 286 + 275 common splice __x64_sys_splice 287 + 276 common tee __x64_sys_tee 288 + 277 common sync_file_range __x64_sys_sync_file_range 289 + 278 64 vmsplice __x64_sys_vmsplice 290 + 279 64 move_pages __x64_sys_move_pages 291 + 280 common utimensat __x64_sys_utimensat 292 + 281 common epoll_pwait __x64_sys_epoll_pwait 293 + 282 common signalfd __x64_sys_signalfd 294 + 283 common timerfd_create __x64_sys_timerfd_create 295 + 284 common eventfd __x64_sys_eventfd 296 + 285 common fallocate __x64_sys_fallocate 297 + 286 common timerfd_settime __x64_sys_timerfd_settime 298 + 287 common timerfd_gettime __x64_sys_timerfd_gettime 299 + 288 common accept4 __x64_sys_accept4 300 + 289 common signalfd4 __x64_sys_signalfd4 301 + 290 common eventfd2 __x64_sys_eventfd2 302 + 291 common epoll_create1 __x64_sys_epoll_create1 303 + 292 common dup3 __x64_sys_dup3 304 + 293 common pipe2 __x64_sys_pipe2 305 + 294 common inotify_init1 __x64_sys_inotify_init1 306 + 295 64 preadv __x64_sys_preadv 307 + 296 64 pwritev __x64_sys_pwritev 308 + 297 64 rt_tgsigqueueinfo __x64_sys_rt_tgsigqueueinfo 309 + 298 common perf_event_open __x64_sys_perf_event_open 310 + 299 64 recvmmsg __x64_sys_recvmmsg 311 + 300 common fanotify_init __x64_sys_fanotify_init 312 + 301 common fanotify_mark __x64_sys_fanotify_mark 313 + 302 common prlimit64 __x64_sys_prlimit64 314 + 303 common name_to_handle_at __x64_sys_name_to_handle_at 315 + 304 common open_by_handle_at __x64_sys_open_by_handle_at 316 + 305 common clock_adjtime __x64_sys_clock_adjtime 317 + 306 common syncfs __x64_sys_syncfs 318 + 307 64 sendmmsg __x64_sys_sendmmsg 319 + 308 common setns __x64_sys_setns 320 + 309 common getcpu __x64_sys_getcpu 321 + 310 64 process_vm_readv __x64_sys_process_vm_readv 322 + 311 64 process_vm_writev __x64_sys_process_vm_writev 323 + 312 common kcmp __x64_sys_kcmp 324 + 313 common finit_module __x64_sys_finit_module 325 + 314 common sched_setattr __x64_sys_sched_setattr 326 + 315 common sched_getattr __x64_sys_sched_getattr 327 + 316 common renameat2 __x64_sys_renameat2 328 + 317 common seccomp __x64_sys_seccomp 329 + 318 common getrandom __x64_sys_getrandom 330 + 319 common memfd_create __x64_sys_memfd_create 331 + 320 common kexec_file_load __x64_sys_kexec_file_load 332 + 321 common bpf __x64_sys_bpf 333 + 322 64 execveat __x64_sys_execveat/ptregs 334 + 323 common userfaultfd __x64_sys_userfaultfd 335 + 324 common membarrier __x64_sys_membarrier 336 + 325 common mlock2 __x64_sys_mlock2 337 + 326 common copy_file_range __x64_sys_copy_file_range 338 + 327 64 preadv2 __x64_sys_preadv2 339 + 328 64 pwritev2 __x64_sys_pwritev2 340 + 329 common pkey_mprotect __x64_sys_pkey_mprotect 341 + 330 common pkey_alloc __x64_sys_pkey_alloc 342 + 331 common pkey_free __x64_sys_pkey_free 343 + 332 common statx __x64_sys_statx 342 344 343 345 # 344 346 # x32-specific system call numbers start at 512 to avoid cache impact 345 - # for native 64-bit operation. 347 + # for native 64-bit operation. The __x32_compat_sys stubs are created 348 + # on-the-fly for compat_sys_*() compatibility system calls if X86_X32 349 + # is defined. 346 350 # 347 - 512 x32 rt_sigaction compat_sys_rt_sigaction 351 + 512 x32 rt_sigaction __x32_compat_sys_rt_sigaction 348 352 513 x32 rt_sigreturn sys32_x32_rt_sigreturn 349 - 514 x32 ioctl compat_sys_ioctl 350 - 515 x32 readv compat_sys_readv 351 - 516 x32 writev compat_sys_writev 352 - 517 x32 recvfrom compat_sys_recvfrom 353 - 518 x32 sendmsg compat_sys_sendmsg 354 - 519 x32 recvmsg compat_sys_recvmsg 355 - 520 x32 execve compat_sys_execve/ptregs 356 - 521 x32 ptrace compat_sys_ptrace 357 - 522 x32 rt_sigpending compat_sys_rt_sigpending 358 - 523 x32 rt_sigtimedwait compat_sys_rt_sigtimedwait 359 - 524 x32 rt_sigqueueinfo compat_sys_rt_sigqueueinfo 360 - 525 x32 sigaltstack compat_sys_sigaltstack 361 - 526 x32 timer_create compat_sys_timer_create 362 - 527 x32 mq_notify compat_sys_mq_notify 363 - 528 x32 kexec_load compat_sys_kexec_load 364 - 529 x32 waitid compat_sys_waitid 365 - 530 x32 set_robust_list compat_sys_set_robust_list 366 - 531 x32 get_robust_list compat_sys_get_robust_list 367 - 532 x32 vmsplice compat_sys_vmsplice 368 - 533 x32 move_pages compat_sys_move_pages 369 - 534 x32 preadv compat_sys_preadv64 370 - 535 x32 pwritev compat_sys_pwritev64 371 - 536 x32 rt_tgsigqueueinfo compat_sys_rt_tgsigqueueinfo 372 - 537 x32 recvmmsg compat_sys_recvmmsg 373 - 538 x32 sendmmsg compat_sys_sendmmsg 374 - 539 x32 process_vm_readv compat_sys_process_vm_readv 375 - 540 x32 process_vm_writev compat_sys_process_vm_writev 376 - 541 x32 setsockopt compat_sys_setsockopt 377 - 542 x32 getsockopt compat_sys_getsockopt 378 - 543 x32 io_setup compat_sys_io_setup 379 - 544 x32 io_submit compat_sys_io_submit 380 - 545 x32 execveat compat_sys_execveat/ptregs 381 - 546 x32 preadv2 compat_sys_preadv64v2 382 - 547 x32 pwritev2 compat_sys_pwritev64v2 353 + 514 x32 ioctl __x32_compat_sys_ioctl 354 + 515 x32 readv __x32_compat_sys_readv 355 + 516 x32 writev __x32_compat_sys_writev 356 + 517 x32 recvfrom __x32_compat_sys_recvfrom 357 + 518 x32 sendmsg __x32_compat_sys_sendmsg 358 + 519 x32 recvmsg __x32_compat_sys_recvmsg 359 + 520 x32 execve __x32_compat_sys_execve/ptregs 360 + 521 x32 ptrace __x32_compat_sys_ptrace 361 + 522 x32 rt_sigpending __x32_compat_sys_rt_sigpending 362 + 523 x32 rt_sigtimedwait __x32_compat_sys_rt_sigtimedwait 363 + 524 x32 rt_sigqueueinfo __x32_compat_sys_rt_sigqueueinfo 364 + 525 x32 sigaltstack __x32_compat_sys_sigaltstack 365 + 526 x32 timer_create __x32_compat_sys_timer_create 366 + 527 x32 mq_notify __x32_compat_sys_mq_notify 367 + 528 x32 kexec_load __x32_compat_sys_kexec_load 368 + 529 x32 waitid __x32_compat_sys_waitid 369 + 530 x32 set_robust_list __x32_compat_sys_set_robust_list 370 + 531 x32 get_robust_list __x32_compat_sys_get_robust_list 371 + 532 x32 vmsplice __x32_compat_sys_vmsplice 372 + 533 x32 move_pages __x32_compat_sys_move_pages 373 + 534 x32 preadv __x32_compat_sys_preadv64 374 + 535 x32 pwritev __x32_compat_sys_pwritev64 375 + 536 x32 rt_tgsigqueueinfo __x32_compat_sys_rt_tgsigqueueinfo 376 + 537 x32 recvmmsg __x32_compat_sys_recvmmsg 377 + 538 x32 sendmmsg __x32_compat_sys_sendmmsg 378 + 539 x32 process_vm_readv __x32_compat_sys_process_vm_readv 379 + 540 x32 process_vm_writev __x32_compat_sys_process_vm_writev 380 + 541 x32 setsockopt __x32_compat_sys_setsockopt 381 + 542 x32 getsockopt __x32_compat_sys_getsockopt 382 + 543 x32 io_setup __x32_compat_sys_io_setup 383 + 544 x32 io_submit __x32_compat_sys_io_submit 384 + 545 x32 execveat __x32_compat_sys_execveat/ptregs 385 + 546 x32 preadv2 __x32_compat_sys_preadv64v2 386 + 547 x32 pwritev2 __x32_compat_sys_pwritev64v2
+13 -1
arch/x86/entry/syscalls/syscalltbl.sh
··· 25 25 nr="$2" 26 26 entry="$3" 27 27 compat="$4" 28 + umlentry="" 28 29 29 30 if [ "$abi" = "64" -a -n "$compat" ]; then 30 31 echo "a compat entry for a 64-bit syscall makes no sense" >&2 31 32 exit 1 32 33 fi 33 34 35 + # For CONFIG_UML, we need to strip the __x64_sys prefix 36 + if [ "$abi" = "64" -a "${entry}" != "${entry#__x64_sys}" ]; then 37 + umlentry="sys${entry#__x64_sys}" 38 + fi 39 + 34 40 if [ -z "$compat" ]; then 35 - if [ -n "$entry" ]; then 41 + if [ -n "$entry" -a -z "$umlentry" ]; then 36 42 syscall_macro "$abi" "$nr" "$entry" 43 + elif [ -n "$umlentry" ]; then # implies -n "$entry" 44 + echo "#ifdef CONFIG_X86" 45 + syscall_macro "$abi" "$nr" "$entry" 46 + echo "#else /* CONFIG_UML */" 47 + syscall_macro "$abi" "$nr" "$umlentry" 48 + echo "#endif" 37 49 fi 38 50 else 39 51 echo "#ifdef CONFIG_X86_32"
+11 -7
arch/x86/entry/vsyscall/vsyscall_64.c
··· 127 127 int vsyscall_nr, syscall_nr, tmp; 128 128 int prev_sig_on_uaccess_err; 129 129 long ret; 130 + unsigned long orig_dx; 130 131 131 132 /* 132 133 * No point in checking CS -- the only way to get here is a user mode ··· 228 227 ret = -EFAULT; 229 228 switch (vsyscall_nr) { 230 229 case 0: 231 - ret = sys_gettimeofday( 232 - (struct timeval __user *)regs->di, 233 - (struct timezone __user *)regs->si); 230 + /* this decodes regs->di and regs->si on its own */ 231 + ret = __x64_sys_gettimeofday(regs); 234 232 break; 235 233 236 234 case 1: 237 - ret = sys_time((time_t __user *)regs->di); 235 + /* this decodes regs->di on its own */ 236 + ret = __x64_sys_time(regs); 238 237 break; 239 238 240 239 case 2: 241 - ret = sys_getcpu((unsigned __user *)regs->di, 242 - (unsigned __user *)regs->si, 243 - NULL); 240 + /* while we could clobber regs->dx, we didn't in the past... */ 241 + orig_dx = regs->dx; 242 + regs->dx = 0; 243 + /* this decodes regs->di, regs->si and regs->dx on its own */ 244 + ret = __x64_sys_getcpu(regs); 245 + regs->dx = orig_dx; 244 246 break; 245 247 } 246 248
+2 -2
arch/x86/include/asm/apic.h
··· 313 313 /* Probe, setup and smpboot functions */ 314 314 int (*probe)(void); 315 315 int (*acpi_madt_oem_check)(char *oem_id, char *oem_table_id); 316 - int (*apic_id_valid)(int apicid); 316 + int (*apic_id_valid)(u32 apicid); 317 317 int (*apic_id_registered)(void); 318 318 319 319 bool (*check_apicid_used)(physid_mask_t *map, int apicid); ··· 486 486 return apic->get_apic_id(reg); 487 487 } 488 488 489 - extern int default_apic_id_valid(int apicid); 489 + extern int default_apic_id_valid(u32 apicid); 490 490 extern int default_acpi_madt_oem_check(char *, char *); 491 491 extern void default_setup_apic_routing(void); 492 492
+4
arch/x86/include/asm/syscall.h
··· 20 20 #include <asm/thread_info.h> /* for TS_COMPAT */ 21 21 #include <asm/unistd.h> 22 22 23 + #ifdef CONFIG_X86_64 24 + typedef asmlinkage long (*sys_call_ptr_t)(const struct pt_regs *); 25 + #else 23 26 typedef asmlinkage long (*sys_call_ptr_t)(unsigned long, unsigned long, 24 27 unsigned long, unsigned long, 25 28 unsigned long, unsigned long); 29 + #endif /* CONFIG_X86_64 */ 26 30 extern const sys_call_ptr_t sys_call_table[]; 27 31 28 32 #if defined(CONFIG_X86_32)
+209
arch/x86/include/asm/syscall_wrapper.h
··· 1 + /* SPDX-License-Identifier: GPL-2.0 */ 2 + /* 3 + * syscall_wrapper.h - x86 specific wrappers to syscall definitions 4 + */ 5 + 6 + #ifndef _ASM_X86_SYSCALL_WRAPPER_H 7 + #define _ASM_X86_SYSCALL_WRAPPER_H 8 + 9 + /* Mapping of registers to parameters for syscalls on x86-64 and x32 */ 10 + #define SC_X86_64_REGS_TO_ARGS(x, ...) \ 11 + __MAP(x,__SC_ARGS \ 12 + ,,regs->di,,regs->si,,regs->dx \ 13 + ,,regs->r10,,regs->r8,,regs->r9) \ 14 + 15 + /* Mapping of registers to parameters for syscalls on i386 */ 16 + #define SC_IA32_REGS_TO_ARGS(x, ...) \ 17 + __MAP(x,__SC_ARGS \ 18 + ,,(unsigned int)regs->bx,,(unsigned int)regs->cx \ 19 + ,,(unsigned int)regs->dx,,(unsigned int)regs->si \ 20 + ,,(unsigned int)regs->di,,(unsigned int)regs->bp) 21 + 22 + #ifdef CONFIG_IA32_EMULATION 23 + /* 24 + * For IA32 emulation, we need to handle "compat" syscalls *and* create 25 + * additional wrappers (aptly named __ia32_sys_xyzzy) which decode the 26 + * ia32 regs in the proper order for shared or "common" syscalls. As some 27 + * syscalls may not be implemented, we need to expand COND_SYSCALL in 28 + * kernel/sys_ni.c and SYS_NI in kernel/time/posix-stubs.c to cover this 29 + * case as well. 30 + */ 31 + #define __IA32_COMPAT_SYS_STUBx(x, name, ...) \ 32 + asmlinkage long __ia32_compat_sys##name(const struct pt_regs *regs);\ 33 + ALLOW_ERROR_INJECTION(__ia32_compat_sys##name, ERRNO); \ 34 + asmlinkage long __ia32_compat_sys##name(const struct pt_regs *regs)\ 35 + { \ 36 + return __se_compat_sys##name(SC_IA32_REGS_TO_ARGS(x,__VA_ARGS__));\ 37 + } \ 38 + 39 + #define __IA32_SYS_STUBx(x, name, ...) \ 40 + asmlinkage long __ia32_sys##name(const struct pt_regs *regs); \ 41 + ALLOW_ERROR_INJECTION(__ia32_sys##name, ERRNO); \ 42 + asmlinkage long __ia32_sys##name(const struct pt_regs *regs) \ 43 + { \ 44 + return __se_sys##name(SC_IA32_REGS_TO_ARGS(x,__VA_ARGS__));\ 45 + } 46 + 47 + /* 48 + * To keep the naming coherent, re-define SYSCALL_DEFINE0 to create an alias 49 + * named __ia32_sys_*() 50 + */ 51 + #define SYSCALL_DEFINE0(sname) \ 52 + SYSCALL_METADATA(_##sname, 0); \ 53 + asmlinkage long __x64_sys_##sname(void); \ 54 + ALLOW_ERROR_INJECTION(__x64_sys_##sname, ERRNO); \ 55 + SYSCALL_ALIAS(__ia32_sys_##sname, __x64_sys_##sname); \ 56 + asmlinkage long __x64_sys_##sname(void) 57 + 58 + #define COND_SYSCALL(name) \ 59 + cond_syscall(__x64_sys_##name); \ 60 + cond_syscall(__ia32_sys_##name) 61 + 62 + #define SYS_NI(name) \ 63 + SYSCALL_ALIAS(__x64_sys_##name, sys_ni_posix_timers); \ 64 + SYSCALL_ALIAS(__ia32_sys_##name, sys_ni_posix_timers) 65 + 66 + #else /* CONFIG_IA32_EMULATION */ 67 + #define __IA32_COMPAT_SYS_STUBx(x, name, ...) 68 + #define __IA32_SYS_STUBx(x, fullname, name, ...) 69 + #endif /* CONFIG_IA32_EMULATION */ 70 + 71 + 72 + #ifdef CONFIG_X86_X32 73 + /* 74 + * For the x32 ABI, we need to create a stub for compat_sys_*() which is aware 75 + * of the x86-64-style parameter ordering of x32 syscalls. The syscalls common 76 + * with x86_64 obviously do not need such care. 77 + */ 78 + #define __X32_COMPAT_SYS_STUBx(x, name, ...) \ 79 + asmlinkage long __x32_compat_sys##name(const struct pt_regs *regs);\ 80 + ALLOW_ERROR_INJECTION(__x32_compat_sys##name, ERRNO); \ 81 + asmlinkage long __x32_compat_sys##name(const struct pt_regs *regs)\ 82 + { \ 83 + return __se_compat_sys##name(SC_X86_64_REGS_TO_ARGS(x,__VA_ARGS__));\ 84 + } \ 85 + 86 + #else /* CONFIG_X86_X32 */ 87 + #define __X32_COMPAT_SYS_STUBx(x, name, ...) 88 + #endif /* CONFIG_X86_X32 */ 89 + 90 + 91 + #ifdef CONFIG_COMPAT 92 + /* 93 + * Compat means IA32_EMULATION and/or X86_X32. As they use a different 94 + * mapping of registers to parameters, we need to generate stubs for each 95 + * of them. 96 + */ 97 + #define COMPAT_SYSCALL_DEFINEx(x, name, ...) \ 98 + static long __se_compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)); \ 99 + static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\ 100 + __IA32_COMPAT_SYS_STUBx(x, name, __VA_ARGS__) \ 101 + __X32_COMPAT_SYS_STUBx(x, name, __VA_ARGS__) \ 102 + static long __se_compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \ 103 + { \ 104 + return __do_compat_sys##name(__MAP(x,__SC_DELOUSE,__VA_ARGS__));\ 105 + } \ 106 + static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) 107 + 108 + /* 109 + * As some compat syscalls may not be implemented, we need to expand 110 + * COND_SYSCALL_COMPAT in kernel/sys_ni.c and COMPAT_SYS_NI in 111 + * kernel/time/posix-stubs.c to cover this case as well. 112 + */ 113 + #define COND_SYSCALL_COMPAT(name) \ 114 + cond_syscall(__ia32_compat_sys_##name); \ 115 + cond_syscall(__x32_compat_sys_##name) 116 + 117 + #define COMPAT_SYS_NI(name) \ 118 + SYSCALL_ALIAS(__ia32_compat_sys_##name, sys_ni_posix_timers); \ 119 + SYSCALL_ALIAS(__x32_compat_sys_##name, sys_ni_posix_timers) 120 + 121 + #endif /* CONFIG_COMPAT */ 122 + 123 + 124 + /* 125 + * Instead of the generic __SYSCALL_DEFINEx() definition, this macro takes 126 + * struct pt_regs *regs as the only argument of the syscall stub named 127 + * __x64_sys_*(). It decodes just the registers it needs and passes them on to 128 + * the __se_sys_*() wrapper performing sign extension and then to the 129 + * __do_sys_*() function doing the actual job. These wrappers and functions 130 + * are inlined (at least in very most cases), meaning that the assembly looks 131 + * as follows (slightly re-ordered for better readability): 132 + * 133 + * <__x64_sys_recv>: <-- syscall with 4 parameters 134 + * callq <__fentry__> 135 + * 136 + * mov 0x70(%rdi),%rdi <-- decode regs->di 137 + * mov 0x68(%rdi),%rsi <-- decode regs->si 138 + * mov 0x60(%rdi),%rdx <-- decode regs->dx 139 + * mov 0x38(%rdi),%rcx <-- decode regs->r10 140 + * 141 + * xor %r9d,%r9d <-- clear %r9 142 + * xor %r8d,%r8d <-- clear %r8 143 + * 144 + * callq __sys_recvfrom <-- do the actual work in __sys_recvfrom() 145 + * which takes 6 arguments 146 + * 147 + * cltq <-- extend return value to 64-bit 148 + * retq <-- return 149 + * 150 + * This approach avoids leaking random user-provided register content down 151 + * the call chain. 152 + * 153 + * If IA32_EMULATION is enabled, this macro generates an additional wrapper 154 + * named __ia32_sys_*() which decodes the struct pt_regs *regs according 155 + * to the i386 calling convention (bx, cx, dx, si, di, bp). 156 + */ 157 + #define __SYSCALL_DEFINEx(x, name, ...) \ 158 + asmlinkage long __x64_sys##name(const struct pt_regs *regs); \ 159 + ALLOW_ERROR_INJECTION(__x64_sys##name, ERRNO); \ 160 + static long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)); \ 161 + static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\ 162 + asmlinkage long __x64_sys##name(const struct pt_regs *regs) \ 163 + { \ 164 + return __se_sys##name(SC_X86_64_REGS_TO_ARGS(x,__VA_ARGS__));\ 165 + } \ 166 + __IA32_SYS_STUBx(x, name, __VA_ARGS__) \ 167 + static long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \ 168 + { \ 169 + long ret = __do_sys##name(__MAP(x,__SC_CAST,__VA_ARGS__));\ 170 + __MAP(x,__SC_TEST,__VA_ARGS__); \ 171 + __PROTECT(x, ret,__MAP(x,__SC_ARGS,__VA_ARGS__)); \ 172 + return ret; \ 173 + } \ 174 + static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) 175 + 176 + /* 177 + * As the generic SYSCALL_DEFINE0() macro does not decode any parameters for 178 + * obvious reasons, and passing struct pt_regs *regs to it in %rdi does not 179 + * hurt, we only need to re-define it here to keep the naming congruent to 180 + * SYSCALL_DEFINEx() -- which is essential for the COND_SYSCALL() and SYS_NI() 181 + * macros to work correctly. 182 + */ 183 + #ifndef SYSCALL_DEFINE0 184 + #define SYSCALL_DEFINE0(sname) \ 185 + SYSCALL_METADATA(_##sname, 0); \ 186 + asmlinkage long __x64_sys_##sname(void); \ 187 + ALLOW_ERROR_INJECTION(__x64_sys_##sname, ERRNO); \ 188 + asmlinkage long __x64_sys_##sname(void) 189 + #endif 190 + 191 + #ifndef COND_SYSCALL 192 + #define COND_SYSCALL(name) cond_syscall(__x64_sys_##name) 193 + #endif 194 + 195 + #ifndef SYS_NI 196 + #define SYS_NI(name) SYSCALL_ALIAS(__x64_sys_##name, sys_ni_posix_timers); 197 + #endif 198 + 199 + 200 + /* 201 + * For VSYSCALLS, we need to declare these three syscalls with the new 202 + * pt_regs-based calling convention for in-kernel use. 203 + */ 204 + struct pt_regs; 205 + asmlinkage long __x64_sys_getcpu(const struct pt_regs *regs); 206 + asmlinkage long __x64_sys_gettimeofday(const struct pt_regs *regs); 207 + asmlinkage long __x64_sys_time(const struct pt_regs *regs); 208 + 209 + #endif /* _ASM_X86_SYSCALL_WRAPPER_H */
+6 -11
arch/x86/include/asm/syscalls.h
··· 18 18 /* Common in X86_32 and X86_64 */ 19 19 /* kernel/ioport.c */ 20 20 long ksys_ioperm(unsigned long from, unsigned long num, int turn_on); 21 + 22 + #ifdef CONFIG_X86_32 23 + /* 24 + * These definitions are only valid on pure 32-bit systems; x86-64 uses a 25 + * different syscall calling convention 26 + */ 21 27 asmlinkage long sys_ioperm(unsigned long, unsigned long, int); 22 28 asmlinkage long sys_iopl(unsigned int); 23 29 ··· 38 32 asmlinkage long sys_get_thread_area(struct user_desc __user *); 39 33 40 34 /* X86_32 only */ 41 - #ifdef CONFIG_X86_32 42 35 43 36 /* kernel/signal.c */ 44 37 asmlinkage long sys_sigreturn(void); ··· 46 41 struct vm86_struct; 47 42 asmlinkage long sys_vm86old(struct vm86_struct __user *); 48 43 asmlinkage long sys_vm86(unsigned long, unsigned long); 49 - 50 - #else /* CONFIG_X86_32 */ 51 - 52 - /* X86_64 only */ 53 - /* kernel/process_64.c */ 54 - asmlinkage long sys_arch_prctl(int, unsigned long); 55 - 56 - /* kernel/sys_x86_64.c */ 57 - asmlinkage long sys_mmap(unsigned long, unsigned long, unsigned long, 58 - unsigned long, unsigned long, unsigned long); 59 44 60 45 #endif /* CONFIG_X86_32 */ 61 46 #endif /* _ASM_X86_SYSCALLS_H */
+8 -5
arch/x86/kernel/acpi/boot.c
··· 200 200 { 201 201 struct acpi_madt_local_x2apic *processor = NULL; 202 202 #ifdef CONFIG_X86_X2APIC 203 - int apic_id; 203 + u32 apic_id; 204 204 u8 enabled; 205 205 #endif 206 206 ··· 222 222 * to not preallocating memory for all NR_CPUS 223 223 * when we use CPU hotplug. 224 224 */ 225 - if (!apic->apic_id_valid(apic_id) && enabled) 226 - printk(KERN_WARNING PREFIX "x2apic entry ignored\n"); 227 - else 228 - acpi_register_lapic(apic_id, processor->uid, enabled); 225 + if (!apic->apic_id_valid(apic_id)) { 226 + if (enabled) 227 + pr_warn(PREFIX "x2apic entry ignored\n"); 228 + return 0; 229 + } 230 + 231 + acpi_register_lapic(apic_id, processor->uid, enabled); 229 232 #else 230 233 printk(KERN_WARNING PREFIX "x2apic entry ignored\n"); 231 234 #endif
+1 -1
arch/x86/kernel/apic/apic_common.c
··· 40 40 return physid_isset(phys_apicid, phys_cpu_present_map); 41 41 } 42 42 43 - int default_apic_id_valid(int apicid) 43 + int default_apic_id_valid(u32 apicid) 44 44 { 45 45 return (apicid < 255); 46 46 }
+1 -1
arch/x86/kernel/apic/apic_numachip.c
··· 56 56 return id << 24; 57 57 } 58 58 59 - static int numachip_apic_id_valid(int apicid) 59 + static int numachip_apic_id_valid(u32 apicid) 60 60 { 61 61 /* Trust what bootloader passes in MADT */ 62 62 return 1;
+1 -1
arch/x86/kernel/apic/x2apic.h
··· 1 1 /* Common bits for X2APIC cluster/physical modes. */ 2 2 3 - int x2apic_apic_id_valid(int apicid); 3 + int x2apic_apic_id_valid(u32 apicid); 4 4 int x2apic_apic_id_registered(void); 5 5 void __x2apic_send_IPI_dest(unsigned int apicid, int vector, unsigned int dest); 6 6 unsigned int x2apic_get_apic_id(unsigned long id);
+1 -1
arch/x86/kernel/apic/x2apic_phys.c
··· 101 101 } 102 102 103 103 /* Common x2apic functions, also used by x2apic_cluster */ 104 - int x2apic_apic_id_valid(int apicid) 104 + int x2apic_apic_id_valid(u32 apicid) 105 105 { 106 106 return 1; 107 107 }
+1 -1
arch/x86/kernel/apic/x2apic_uv_x.c
··· 557 557 uv_send_IPI_mask(cpu_online_mask, vector); 558 558 } 559 559 560 - static int uv_apic_id_valid(int apicid) 560 + static int uv_apic_id_valid(u32 apicid) 561 561 { 562 562 return 1; 563 563 }
+20 -12
arch/x86/kernel/cpu/common.c
··· 848 848 c->x86_power = edx; 849 849 } 850 850 851 - if (c->extended_cpuid_level >= 0x80000008) { 852 - cpuid(0x80000008, &eax, &ebx, &ecx, &edx); 853 - 854 - c->x86_virt_bits = (eax >> 8) & 0xff; 855 - c->x86_phys_bits = eax & 0xff; 856 - c->x86_capability[CPUID_8000_0008_EBX] = ebx; 857 - } 858 - #ifdef CONFIG_X86_32 859 - else if (cpu_has(c, X86_FEATURE_PAE) || cpu_has(c, X86_FEATURE_PSE36)) 860 - c->x86_phys_bits = 36; 861 - #endif 862 - 863 851 if (c->extended_cpuid_level >= 0x8000000a) 864 852 c->x86_capability[CPUID_8000_000A_EDX] = cpuid_edx(0x8000000a); 865 853 ··· 860 872 * several times during CPU initialization. 861 873 */ 862 874 apply_forced_caps(c); 875 + } 876 + 877 + static void get_cpu_address_sizes(struct cpuinfo_x86 *c) 878 + { 879 + u32 eax, ebx, ecx, edx; 880 + 881 + if (c->extended_cpuid_level >= 0x80000008) { 882 + cpuid(0x80000008, &eax, &ebx, &ecx, &edx); 883 + 884 + c->x86_virt_bits = (eax >> 8) & 0xff; 885 + c->x86_phys_bits = eax & 0xff; 886 + c->x86_capability[CPUID_8000_0008_EBX] = ebx; 887 + } 888 + #ifdef CONFIG_X86_32 889 + else if (cpu_has(c, X86_FEATURE_PAE) || cpu_has(c, X86_FEATURE_PSE36)) 890 + c->x86_phys_bits = 36; 891 + #endif 863 892 } 864 893 865 894 static void identify_cpu_without_cpuid(struct cpuinfo_x86 *c) ··· 970 965 cpu_detect(c); 971 966 get_cpu_vendor(c); 972 967 get_cpu_cap(c); 968 + get_cpu_address_sizes(c); 973 969 setup_force_cpu_cap(X86_FEATURE_CPUID); 974 970 975 971 if (this_cpu->c_early_init) ··· 1102 1096 get_cpu_vendor(c); 1103 1097 1104 1098 get_cpu_cap(c); 1099 + 1100 + get_cpu_address_sizes(c); 1105 1101 1106 1102 if (c->cpuid_level >= 0x00000001) { 1107 1103 c->initial_apicid = (cpuid_ebx(1) >> 24) & 0xFF;
+1 -1
arch/x86/kernel/cpu/cpuid-deps.c
··· 19 19 * called from cpu hotplug. It shouldn't do anything in this case, 20 20 * but it's difficult to tell that to the init reference checker. 21 21 */ 22 - const static struct cpuid_dep cpuid_deps[] = { 22 + static const struct cpuid_dep cpuid_deps[] = { 23 23 { X86_FEATURE_XSAVEOPT, X86_FEATURE_XSAVE }, 24 24 { X86_FEATURE_XSAVEC, X86_FEATURE_XSAVE }, 25 25 { X86_FEATURE_XSAVES, X86_FEATURE_XSAVE },
+1 -1
arch/x86/xen/apic.c
··· 112 112 return xen_pv_domain(); 113 113 } 114 114 115 - static int xen_id_always_valid(int apicid) 115 + static int xen_id_always_valid(u32 apicid) 116 116 { 117 117 return 1; 118 118 }
+39 -12
include/linux/compat.h
··· 24 24 #include <asm/siginfo.h> 25 25 #include <asm/signal.h> 26 26 27 + #ifdef CONFIG_ARCH_HAS_SYSCALL_WRAPPER 28 + /* 29 + * It may be useful for an architecture to override the definitions of the 30 + * COMPAT_SYSCALL_DEFINE0 and COMPAT_SYSCALL_DEFINEx() macros, in particular 31 + * to use a different calling convention for syscalls. To allow for that, 32 + + the prototypes for the compat_sys_*() functions below will *not* be included 33 + * if CONFIG_ARCH_HAS_SYSCALL_WRAPPER is enabled. 34 + */ 35 + #include <asm/syscall_wrapper.h> 36 + #endif /* CONFIG_ARCH_HAS_SYSCALL_WRAPPER */ 37 + 27 38 #ifndef COMPAT_USE_64BIT_TIME 28 39 #define COMPAT_USE_64BIT_TIME 0 29 40 #endif ··· 43 32 #define __SC_DELOUSE(t,v) ((__force t)(unsigned long)(v)) 44 33 #endif 45 34 35 + #ifndef COMPAT_SYSCALL_DEFINE0 46 36 #define COMPAT_SYSCALL_DEFINE0(name) \ 47 37 asmlinkage long compat_sys_##name(void); \ 48 38 ALLOW_ERROR_INJECTION(compat_sys_##name, ERRNO); \ 49 39 asmlinkage long compat_sys_##name(void) 40 + #endif /* COMPAT_SYSCALL_DEFINE0 */ 50 41 51 42 #define COMPAT_SYSCALL_DEFINE1(name, ...) \ 52 43 COMPAT_SYSCALL_DEFINEx(1, _##name, __VA_ARGS__) ··· 63 50 #define COMPAT_SYSCALL_DEFINE6(name, ...) \ 64 51 COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__) 65 52 66 - #define COMPAT_SYSCALL_DEFINEx(x, name, ...) \ 67 - asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\ 68 - asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))\ 69 - __attribute__((alias(__stringify(compat_SyS##name)))); \ 70 - ALLOW_ERROR_INJECTION(compat_sys##name, ERRNO); \ 71 - static inline long C_SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__));\ 72 - asmlinkage long compat_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__));\ 73 - asmlinkage long compat_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__))\ 74 - { \ 75 - return C_SYSC##name(__MAP(x,__SC_DELOUSE,__VA_ARGS__)); \ 76 - } \ 77 - static inline long C_SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__)) 53 + /* 54 + * The asmlinkage stub is aliased to a function named __se_compat_sys_*() which 55 + * sign-extends 32-bit ints to longs whenever needed. The actual work is 56 + * done within __do_compat_sys_*(). 57 + */ 58 + #ifndef COMPAT_SYSCALL_DEFINEx 59 + #define COMPAT_SYSCALL_DEFINEx(x, name, ...) \ 60 + asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)); \ 61 + asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \ 62 + __attribute__((alias(__stringify(__se_compat_sys##name)))); \ 63 + ALLOW_ERROR_INJECTION(compat_sys##name, ERRNO); \ 64 + static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\ 65 + asmlinkage long __se_compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)); \ 66 + asmlinkage long __se_compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \ 67 + { \ 68 + return __do_compat_sys##name(__MAP(x,__SC_DELOUSE,__VA_ARGS__));\ 69 + } \ 70 + static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) 71 + #endif /* COMPAT_SYSCALL_DEFINEx */ 78 72 79 73 #ifndef compat_user_stack_pointer 80 74 #define compat_user_stack_pointer() current_user_stack_pointer() ··· 539 519 * Please note that these prototypes here are only provided for information 540 520 * purposes, for static analysis, and for linking from the syscall table. 541 521 * These functions should not be called elsewhere from kernel code. 522 + * 523 + * As the syscall calling convention may be different from the default 524 + * for architectures overriding the syscall calling convention, do not 525 + * include the prototypes if CONFIG_ARCH_HAS_SYSCALL_WRAPPER is enabled. 542 526 */ 527 + #ifndef CONFIG_ARCH_HAS_SYSCALL_WRAPPER 543 528 asmlinkage long compat_sys_io_setup(unsigned nr_reqs, u32 __user *ctx32p); 544 529 asmlinkage long compat_sys_io_submit(compat_aio_context_t ctx_id, int nr, 545 530 u32 __user *iocb); ··· 981 956 982 957 /* obsolete: net/socket.c */ 983 958 asmlinkage long compat_sys_socketcall(int call, u32 __user *args); 959 + 960 + #endif /* CONFIG_ARCH_HAS_SYSCALL_WRAPPER */ 984 961 985 962 986 963 /*
+35 -7
include/linux/syscalls.h
··· 81 81 #include <linux/key.h> 82 82 #include <trace/syscall.h> 83 83 84 + #ifdef CONFIG_ARCH_HAS_SYSCALL_WRAPPER 85 + /* 86 + * It may be useful for an architecture to override the definitions of the 87 + * SYSCALL_DEFINE0() and __SYSCALL_DEFINEx() macros, in particular to use a 88 + * different calling convention for syscalls. To allow for that, the prototypes 89 + * for the sys_*() functions below will *not* be included if 90 + * CONFIG_ARCH_HAS_SYSCALL_WRAPPER is enabled. 91 + */ 92 + #include <asm/syscall_wrapper.h> 93 + #endif /* CONFIG_ARCH_HAS_SYSCALL_WRAPPER */ 94 + 84 95 /* 85 96 * __MAP - apply a macro to syscall arguments 86 97 * __MAP(n, m, t1, a1, t2, a2, ..., tn, an) will expand to ··· 102 91 * for SYSCALL_DEFINE<n>/COMPAT_SYSCALL_DEFINE<n> 103 92 */ 104 93 #define __MAP0(m,...) 105 - #define __MAP1(m,t,a) m(t,a) 94 + #define __MAP1(m,t,a,...) m(t,a) 106 95 #define __MAP2(m,t,a,...) m(t,a), __MAP1(m,__VA_ARGS__) 107 96 #define __MAP3(m,t,a,...) m(t,a), __MAP2(m,__VA_ARGS__) 108 97 #define __MAP4(m,t,a,...) m(t,a), __MAP3(m,__VA_ARGS__) ··· 200 189 } 201 190 #endif 202 191 192 + #ifndef SYSCALL_DEFINE0 203 193 #define SYSCALL_DEFINE0(sname) \ 204 194 SYSCALL_METADATA(_##sname, 0); \ 205 195 asmlinkage long sys_##sname(void); \ 206 196 ALLOW_ERROR_INJECTION(sys_##sname, ERRNO); \ 207 197 asmlinkage long sys_##sname(void) 198 + #endif /* SYSCALL_DEFINE0 */ 208 199 209 200 #define SYSCALL_DEFINE1(name, ...) SYSCALL_DEFINEx(1, _##name, __VA_ARGS__) 210 201 #define SYSCALL_DEFINE2(name, ...) SYSCALL_DEFINEx(2, _##name, __VA_ARGS__) ··· 222 209 __SYSCALL_DEFINEx(x, sname, __VA_ARGS__) 223 210 224 211 #define __PROTECT(...) asmlinkage_protect(__VA_ARGS__) 212 + 213 + /* 214 + * The asmlinkage stub is aliased to a function named __se_sys_*() which 215 + * sign-extends 32-bit ints to longs whenever needed. The actual work is 216 + * done within __do_sys_*(). 217 + */ 218 + #ifndef __SYSCALL_DEFINEx 225 219 #define __SYSCALL_DEFINEx(x, name, ...) \ 226 220 asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \ 227 - __attribute__((alias(__stringify(SyS##name)))); \ 221 + __attribute__((alias(__stringify(__se_sys##name)))); \ 228 222 ALLOW_ERROR_INJECTION(sys##name, ERRNO); \ 229 - static inline long SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__)); \ 230 - asmlinkage long SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__)); \ 231 - asmlinkage long SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \ 223 + static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\ 224 + asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)); \ 225 + asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \ 232 226 { \ 233 - long ret = SYSC##name(__MAP(x,__SC_CAST,__VA_ARGS__)); \ 227 + long ret = __do_sys##name(__MAP(x,__SC_CAST,__VA_ARGS__));\ 234 228 __MAP(x,__SC_TEST,__VA_ARGS__); \ 235 229 __PROTECT(x, ret,__MAP(x,__SC_ARGS,__VA_ARGS__)); \ 236 230 return ret; \ 237 231 } \ 238 - static inline long SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__)) 232 + static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) 233 + #endif /* __SYSCALL_DEFINEx */ 239 234 240 235 /* 241 236 * Called before coming back to user-mode. Returning to user-mode with an ··· 273 252 * Please note that these prototypes here are only provided for information 274 253 * purposes, for static analysis, and for linking from the syscall table. 275 254 * These functions should not be called elsewhere from kernel code. 255 + * 256 + * As the syscall calling convention may be different from the default 257 + * for architectures overriding the syscall calling convention, do not 258 + * include the prototypes if CONFIG_ARCH_HAS_SYSCALL_WRAPPER is enabled. 276 259 */ 260 + #ifndef CONFIG_ARCH_HAS_SYSCALL_WRAPPER 277 261 asmlinkage long sys_io_setup(unsigned nr_reqs, aio_context_t __user *ctx); 278 262 asmlinkage long sys_io_destroy(aio_context_t ctx); 279 263 asmlinkage long sys_io_submit(aio_context_t, long, ··· 1101 1075 * not implemented -- see kernel/sys_ni.c 1102 1076 */ 1103 1077 asmlinkage long sys_ni_syscall(void); 1078 + 1079 + #endif /* CONFIG_ARCH_HAS_SYSCALL_WRAPPER */ 1104 1080 1105 1081 1106 1082 /*
+10
init/Kconfig
··· 1923 1923 1924 1924 config ARCH_HAS_SYNC_CORE_BEFORE_USERMODE 1925 1925 bool 1926 + 1927 + # It may be useful for an architecture to override the definitions of the 1928 + # SYSCALL_DEFINE() and __SYSCALL_DEFINEx() macros in <linux/syscalls.h> 1929 + # and the COMPAT_ variants in <linux/compat.h>, in particular to use a 1930 + # different calling convention for syscalls. They can also override the 1931 + # macros for not-implemented syscalls in kernel/sys_ni.c and 1932 + # kernel/time/posix-stubs.c. All these overrides need to be available in 1933 + # <asm/syscall_wrapper.h>. 1934 + config ARCH_HAS_SYSCALL_WRAPPER 1935 + def_bool n
+10
kernel/sys_ni.c
··· 5 5 6 6 #include <asm/unistd.h> 7 7 8 + #ifdef CONFIG_ARCH_HAS_SYSCALL_WRAPPER 9 + /* Architectures may override COND_SYSCALL and COND_SYSCALL_COMPAT */ 10 + #include <asm/syscall_wrapper.h> 11 + #endif /* CONFIG_ARCH_HAS_SYSCALL_WRAPPER */ 12 + 8 13 /* we can't #include <linux/syscalls.h> here, 9 14 but tell gcc to not warn with -Wmissing-prototypes */ 10 15 asmlinkage long sys_ni_syscall(void); ··· 22 17 return -ENOSYS; 23 18 } 24 19 20 + #ifndef COND_SYSCALL 25 21 #define COND_SYSCALL(name) cond_syscall(sys_##name) 22 + #endif /* COND_SYSCALL */ 23 + 24 + #ifndef COND_SYSCALL_COMPAT 26 25 #define COND_SYSCALL_COMPAT(name) cond_syscall(compat_sys_##name) 26 + #endif /* COND_SYSCALL_COMPAT */ 27 27 28 28 /* 29 29 * This list is kept in the same order as include/uapi/asm-generic/unistd.h.
+10
kernel/time/posix-stubs.c
··· 19 19 #include <linux/posix-timers.h> 20 20 #include <linux/compat.h> 21 21 22 + #ifdef CONFIG_ARCH_HAS_SYSCALL_WRAPPER 23 + /* Architectures may override SYS_NI and COMPAT_SYS_NI */ 24 + #include <asm/syscall_wrapper.h> 25 + #endif 26 + 22 27 asmlinkage long sys_ni_posix_timers(void) 23 28 { 24 29 pr_err_once("process %d (%s) attempted a POSIX timer syscall " ··· 32 27 return -ENOSYS; 33 28 } 34 29 30 + #ifndef SYS_NI 35 31 #define SYS_NI(name) SYSCALL_ALIAS(sys_##name, sys_ni_posix_timers) 32 + #endif 33 + 34 + #ifndef COMPAT_SYS_NI 36 35 #define COMPAT_SYS_NI(name) SYSCALL_ALIAS(compat_sys_##name, sys_ni_posix_timers) 36 + #endif 37 37 38 38 SYS_NI(timer_create); 39 39 SYS_NI(timer_gettime);
+1 -1
lib/swiotlb.c
··· 1087 1087 .unmap_sg = swiotlb_unmap_sg_attrs, 1088 1088 .map_page = swiotlb_map_page, 1089 1089 .unmap_page = swiotlb_unmap_page, 1090 - .dma_supported = swiotlb_dma_supported, 1090 + .dma_supported = dma_direct_supported, 1091 1091 }; 1092 1092 #endif /* CONFIG_DMA_DIRECT_OPS */
+2 -2
scripts/bloat-o-meter
··· 30 30 if type in format: 31 31 # strip generated symbols 32 32 if name.startswith("__mod_"): continue 33 - if name.startswith("SyS_"): continue 34 - if name.startswith("compat_SyS_"): continue 33 + if name.startswith("__se_sys"): continue 34 + if name.startswith("__se_compat_sys"): continue 35 35 if name == "linux_banner": continue 36 36 # statics and some other optimizations adds random .NUMBER 37 37 name = re_NUMBER.sub('', name)