lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20180409105145.5364-3-linux@dominikbrodowski.net>
Date:   Mon,  9 Apr 2018 12:51:43 +0200
From:   Dominik Brodowski <linux@...inikbrodowski.net>
To:     linux-kernel@...r.kernel.org, mingo@...nel.org
Cc:     Dominik Brodowski <linux@...inikbrodowski.net>,
        Linus Torvalds <torvalds@...ux-foundation.org>,
        Al Viro <viro@...iv.linux.org.uk>,
        Andrew Morton <akpm@...ux-foundation.org>,
        Andy Lutomirski <luto@...nel.org>,
        Borislav Petkov <bp@...en8.de>,
        Brian Gerst <brgerst@...il.com>,
        Denys Vlasenko <dvlasenk@...hat.com>,
        "H . Peter Anvin" <hpa@...or.com>,
        Josh Poimboeuf <jpoimboe@...hat.com>,
        Peter Zijlstra <peterz@...radead.org>,
        Thomas Gleixner <tglx@...utronix.de>
Subject: [PATCHv2 2/4] syscalls: clean up compat syscall stub naming convention

Tidy the naming convention for compat syscall subs. Hints which describe
the purpose of the stub go in front and receive a double underscore to
denote that they are generated on-the-fly by the COMPAT_SYSCALL_DEFINEx()
macro.

For the generic case, this means:

t            kernel_waitid	# common C function (see kernel/exit.c)

    __do_compat_sys_waitid	# inlined helper doing the actual work
				# (takes original parameters as declared)

T   __se_compat_sys_waitid	# sign-extending C function calling inlined
				# helper (takes parameters of type long,
				# casts them to unsigned long and then to
				# the declared type)

T        compat_sys_waitid      # alias to __se_compat_sys_waitid()
				# (taking parameters as declared), to
				# be included in syscall table

For x86, the naming is as follows:

t            kernel_waitid	# common C function (see kernel/exit.c)

    __do_compat_sys_waitid	# inlined helper doing the actual work
				# (takes original parameters as declared)

t   __se_compat_sys_waitid      # sign-extending C function calling inlined
				# helper (takes parameters of type long,
				# casts them to unsigned long and then to
				# the declared type)

T __ia32_compat_sys_waitid	# IA32_EMULATION 32-bit-ptregs -> C stub,
				# calls __se_compat_sys_waitid(); to be
				# included in syscall table

T  __x32_compat_sys_waitid	# x32 64-bit-ptregs -> C stub, calls
				# __se_compat_sys_waitid(); to be included
				# in syscall table

If only one of IA32_EMULATION and x32 is enabled, __se_compat_sys_waitid()
may be inlined into the stub __{ia32,x32}_compat_sys_waitid().

Suggested-by: Ingo Molnar <mingo@...nel.org>
Cc: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Al Viro <viro@...iv.linux.org.uk>
Cc: Andrew Morton <akpm@...ux-foundation.org>
Cc: Andy Lutomirski <luto@...nel.org>
Cc: Borislav Petkov <bp@...en8.de>
Cc: Brian Gerst <brgerst@...il.com>
Cc: Denys Vlasenko <dvlasenk@...hat.com>
Cc: H. Peter Anvin <hpa@...or.com>
Cc: Josh Poimboeuf <jpoimboe@...hat.com>
Cc: Peter Zijlstra <peterz@...radead.org>
Cc: Thomas Gleixner <tglx@...utronix.de>
Signed-off-by: Dominik Brodowski <linux@...inikbrodowski.net>
---
 Documentation/process/adding-syscalls.rst |   4 +-
 arch/x86/entry/syscalls/syscall_32.tbl    | 252 +++++++++++-----------
 arch/x86/entry/syscalls/syscall_64.tbl    |  72 +++----
 arch/x86/include/asm/syscall_wrapper.h    |  44 ++--
 arch/x86/include/asm/syscalls.h           |   2 +-
 include/linux/compat.h                    |  29 +--
 scripts/bloat-o-meter                     |   2 +-
 7 files changed, 205 insertions(+), 200 deletions(-)

diff --git a/Documentation/process/adding-syscalls.rst b/Documentation/process/adding-syscalls.rst
index 314c8bf6f2a2..0d4f29bc798b 100644
--- a/Documentation/process/adding-syscalls.rst
+++ b/Documentation/process/adding-syscalls.rst
@@ -360,7 +360,7 @@ First, the entry in ``arch/x86/entry/syscalls/syscall_32.tbl`` gets an extra
 column to indicate that a 32-bit userspace program running on a 64-bit kernel
 should hit the compat entry point::
 
-    380   i386     xyzzy     sys_xyzzy    compat_sys_xyzzy
+    380   i386     xyzzy     sys_xyzzy    __ia32_compat_sys_xyzzy
 
 Second, you need to figure out what should happen for the x32 ABI version of
 the new system call.  There's a choice here: the layout of the arguments
@@ -373,7 +373,7 @@ the compatibility wrapper::
 
     333   64       xyzzy     sys_xyzzy
     ...
-    555   x32      xyzzy     compat_sys_xyzzy
+    555   x32      xyzzy     __x32_compat_sys_xyzzy
 
 If no pointers are involved, then it is preferable to re-use the 64-bit system
 call for the x32 ABI (and consequently the entry in
diff --git a/arch/x86/entry/syscalls/syscall_32.tbl b/arch/x86/entry/syscalls/syscall_32.tbl
index 539df8f6d0e1..0e6cb1335db2 100644
--- a/arch/x86/entry/syscalls/syscall_32.tbl
+++ b/arch/x86/entry/syscalls/syscall_32.tbl
@@ -4,7 +4,7 @@
 # The format is:
 # <number> <abi> <name> <entry point> <compat entry point>
 #
-# The __ia32_sys and __compat_sys_ia32 stubs are created on-the-fly for
+# The __ia32_sys and __ia32_compat_sys stubs are created on-the-fly for
 # sys_*() system calls and compat_sys_*() compat system calls if
 # IA32_EMULATION is defined, and expect struct pt_regs *regs as their only
 # parameter.
@@ -16,32 +16,32 @@
 2	i386	fork			sys_fork
 3	i386	read			sys_read			__ia32_sys_read
 4	i386	write			sys_write			__ia32_sys_write
-5	i386	open			sys_open			__compat_sys_ia32_open
+5	i386	open			sys_open			__ia32_compat_sys_open
 6	i386	close			sys_close			__ia32_sys_close
 7	i386	waitpid			sys_waitpid			__ia32_sys_waitpid
 8	i386	creat			sys_creat			__ia32_sys_creat
 9	i386	link			sys_link			__ia32_sys_link
 10	i386	unlink			sys_unlink			__ia32_sys_unlink
-11	i386	execve			sys_execve			__compat_sys_ia32_execve
+11	i386	execve			sys_execve			__ia32_compat_sys_execve
 12	i386	chdir			sys_chdir			__ia32_sys_chdir
-13	i386	time			sys_time			__compat_sys_ia32_time
+13	i386	time			sys_time			__ia32_compat_sys_time
 14	i386	mknod			sys_mknod			__ia32_sys_mknod
 15	i386	chmod			sys_chmod			__ia32_sys_chmod
 16	i386	lchown			sys_lchown16			__ia32_sys_lchown16
 17	i386	break
 18	i386	oldstat			sys_stat			__ia32_sys_stat
-19	i386	lseek			sys_lseek			__compat_sys_ia32_lseek
+19	i386	lseek			sys_lseek			__ia32_compat_sys_lseek
 20	i386	getpid			sys_getpid
-21	i386	mount			sys_mount			__compat_sys_ia32_mount
+21	i386	mount			sys_mount			__ia32_compat_sys_mount
 22	i386	umount			sys_oldumount			__ia32_sys_oldumount
 23	i386	setuid			sys_setuid16			__ia32_sys_setuid16
 24	i386	getuid			sys_getuid16
-25	i386	stime			sys_stime			__compat_sys_ia32_stime
-26	i386	ptrace			sys_ptrace			__compat_sys_ia32_ptrace
+25	i386	stime			sys_stime			__ia32_compat_sys_stime
+26	i386	ptrace			sys_ptrace			__ia32_compat_sys_ptrace
 27	i386	alarm			sys_alarm			__ia32_sys_alarm
 28	i386	oldfstat		sys_fstat			__ia32_sys_fstat
 29	i386	pause			sys_pause
-30	i386	utime			sys_utime			__compat_sys_ia32_utime
+30	i386	utime			sys_utime			__ia32_compat_sys_utime
 31	i386	stty
 32	i386	gtty
 33	i386	access			sys_access			__ia32_sys_access
@@ -54,7 +54,7 @@
 40	i386	rmdir			sys_rmdir			__ia32_sys_rmdir
 41	i386	dup			sys_dup				__ia32_sys_dup
 42	i386	pipe			sys_pipe			__ia32_sys_pipe
-43	i386	times			sys_times			__compat_sys_ia32_times
+43	i386	times			sys_times			__ia32_compat_sys_times
 44	i386	prof
 45	i386	brk			sys_brk				__ia32_sys_brk
 46	i386	setgid			sys_setgid16			__ia32_sys_setgid16
@@ -65,84 +65,84 @@
 51	i386	acct			sys_acct			__ia32_sys_acct
 52	i386	umount2			sys_umount			__ia32_sys_umount
 53	i386	lock
-54	i386	ioctl			sys_ioctl			__compat_sys_ia32_ioctl
-55	i386	fcntl			sys_fcntl			__compat_sys_ia32_fcntl64
+54	i386	ioctl			sys_ioctl			__ia32_compat_sys_ioctl
+55	i386	fcntl			sys_fcntl			__ia32_compat_sys_fcntl64
 56	i386	mpx
 57	i386	setpgid			sys_setpgid			__ia32_sys_setpgid
 58	i386	ulimit
 59	i386	oldolduname		sys_olduname			__ia32_sys_olduname
 60	i386	umask			sys_umask			__ia32_sys_umask
 61	i386	chroot			sys_chroot			__ia32_sys_chroot
-62	i386	ustat			sys_ustat			__compat_sys_ia32_ustat
+62	i386	ustat			sys_ustat			__ia32_compat_sys_ustat
 63	i386	dup2			sys_dup2			__ia32_sys_dup2
 64	i386	getppid			sys_getppid
 65	i386	getpgrp			sys_getpgrp
 66	i386	setsid			sys_setsid
-67	i386	sigaction		sys_sigaction			__compat_sys_ia32_sigaction
+67	i386	sigaction		sys_sigaction			__ia32_compat_sys_sigaction
 68	i386	sgetmask		sys_sgetmask
 69	i386	ssetmask		sys_ssetmask			__ia32_sys_ssetmask
 70	i386	setreuid		sys_setreuid16			__ia32_sys_setreuid16
 71	i386	setregid		sys_setregid16			__ia32_sys_setregid16
 72	i386	sigsuspend		sys_sigsuspend			__ia32_sys_sigsuspend
-73	i386	sigpending		sys_sigpending			__compat_sys_ia32_sigpending
+73	i386	sigpending		sys_sigpending			__ia32_compat_sys_sigpending
 74	i386	sethostname		sys_sethostname			__ia32_sys_sethostname
-75	i386	setrlimit		sys_setrlimit			__compat_sys_ia32_setrlimit
-76	i386	getrlimit		sys_old_getrlimit		__compat_sys_ia32_old_getrlimit
-77	i386	getrusage		sys_getrusage			__compat_sys_ia32_getrusage
-78	i386	gettimeofday		sys_gettimeofday		__compat_sys_ia32_gettimeofday
-79	i386	settimeofday		sys_settimeofday		__compat_sys_ia32_settimeofday
+75	i386	setrlimit		sys_setrlimit			__ia32_compat_sys_setrlimit
+76	i386	getrlimit		sys_old_getrlimit		__ia32_compat_sys_old_getrlimit
+77	i386	getrusage		sys_getrusage			__ia32_compat_sys_getrusage
+78	i386	gettimeofday		sys_gettimeofday		__ia32_compat_sys_gettimeofday
+79	i386	settimeofday		sys_settimeofday		__ia32_compat_sys_settimeofday
 80	i386	getgroups		sys_getgroups16			__ia32_sys_getgroups16
 81	i386	setgroups		sys_setgroups16			__ia32_sys_setgroups16
-82	i386	select			sys_old_select			__compat_sys_ia32_old_select
+82	i386	select			sys_old_select			__ia32_compat_sys_old_select
 83	i386	symlink			sys_symlink			__ia32_sys_symlink
 84	i386	oldlstat		sys_lstat			__ia32_sys_lstat
 85	i386	readlink		sys_readlink			__ia32_sys_readlink
 86	i386	uselib			sys_uselib			__ia32_sys_uselib
 87	i386	swapon			sys_swapon			__ia32_sys_swapon
 88	i386	reboot			sys_reboot			__ia32_sys_reboot
-89	i386	readdir			sys_old_readdir			__compat_sys_ia32_old_readdir
-90	i386	mmap			sys_old_mmap			__compat_sys_ia32_x86_mmap
+89	i386	readdir			sys_old_readdir			__ia32_compat_sys_old_readdir
+90	i386	mmap			sys_old_mmap			__ia32_compat_sys_x86_mmap
 91	i386	munmap			sys_munmap			__ia32_sys_munmap
-92	i386	truncate		sys_truncate			__compat_sys_ia32_truncate
-93	i386	ftruncate		sys_ftruncate			__compat_sys_ia32_ftruncate
+92	i386	truncate		sys_truncate			__ia32_compat_sys_truncate
+93	i386	ftruncate		sys_ftruncate			__ia32_compat_sys_ftruncate
 94	i386	fchmod			sys_fchmod			__ia32_sys_fchmod
 95	i386	fchown			sys_fchown16			__ia32_sys_fchown16
 96	i386	getpriority		sys_getpriority			__ia32_sys_getpriority
 97	i386	setpriority		sys_setpriority			__ia32_sys_setpriority
 98	i386	profil
-99	i386	statfs			sys_statfs			__compat_sys_ia32_statfs
-100	i386	fstatfs			sys_fstatfs			__compat_sys_ia32_fstatfs
+99	i386	statfs			sys_statfs			__ia32_compat_sys_statfs
+100	i386	fstatfs			sys_fstatfs			__ia32_compat_sys_fstatfs
 101	i386	ioperm			sys_ioperm			__ia32_sys_ioperm
-102	i386	socketcall		sys_socketcall			__compat_sys_ia32_socketcall
+102	i386	socketcall		sys_socketcall			__ia32_compat_sys_socketcall
 103	i386	syslog			sys_syslog			__ia32_sys_syslog
-104	i386	setitimer		sys_setitimer			__compat_sys_ia32_setitimer
-105	i386	getitimer		sys_getitimer			__compat_sys_ia32_getitimer
-106	i386	stat			sys_newstat			__compat_sys_ia32_newstat
-107	i386	lstat			sys_newlstat			__compat_sys_ia32_newlstat
-108	i386	fstat			sys_newfstat			__compat_sys_ia32_newfstat
+104	i386	setitimer		sys_setitimer			__ia32_compat_sys_setitimer
+105	i386	getitimer		sys_getitimer			__ia32_compat_sys_getitimer
+106	i386	stat			sys_newstat			__ia32_compat_sys_newstat
+107	i386	lstat			sys_newlstat			__ia32_compat_sys_newlstat
+108	i386	fstat			sys_newfstat			__ia32_compat_sys_newfstat
 109	i386	olduname		sys_uname			__ia32_sys_uname
 110	i386	iopl			sys_iopl			__ia32_sys_iopl
 111	i386	vhangup			sys_vhangup
 112	i386	idle
 113	i386	vm86old			sys_vm86old			sys_ni_syscall
-114	i386	wait4			sys_wait4			__compat_sys_ia32_wait4
+114	i386	wait4			sys_wait4			__ia32_compat_sys_wait4
 115	i386	swapoff			sys_swapoff			__ia32_sys_swapoff
-116	i386	sysinfo			sys_sysinfo			__compat_sys_ia32_sysinfo
-117	i386	ipc			sys_ipc				__compat_sys_ia32_ipc
+116	i386	sysinfo			sys_sysinfo			__ia32_compat_sys_sysinfo
+117	i386	ipc			sys_ipc				__ia32_compat_sys_ipc
 118	i386	fsync			sys_fsync			__ia32_sys_fsync
 119	i386	sigreturn		sys_sigreturn			sys32_sigreturn
-120	i386	clone			sys_clone			__compat_sys_ia32_x86_clone
+120	i386	clone			sys_clone			__ia32_compat_sys_x86_clone
 121	i386	setdomainname		sys_setdomainname		__ia32_sys_setdomainname
 122	i386	uname			sys_newuname			__ia32_sys_newuname
 123	i386	modify_ldt		sys_modify_ldt			__ia32_sys_modify_ldt
-124	i386	adjtimex		sys_adjtimex			__compat_sys_ia32_adjtimex
+124	i386	adjtimex		sys_adjtimex			__ia32_compat_sys_adjtimex
 125	i386	mprotect		sys_mprotect			__ia32_sys_mprotect
-126	i386	sigprocmask		sys_sigprocmask			__compat_sys_ia32_sigprocmask
+126	i386	sigprocmask		sys_sigprocmask			__ia32_compat_sys_sigprocmask
 127	i386	create_module
 128	i386	init_module		sys_init_module			__ia32_sys_init_module
 129	i386	delete_module		sys_delete_module		__ia32_sys_delete_module
 130	i386	get_kernel_syms
-131	i386	quotactl		sys_quotactl			__compat_sys_ia32_quotactl32
+131	i386	quotactl		sys_quotactl			__ia32_compat_sys_quotactl32
 132	i386	getpgid			sys_getpgid			__ia32_sys_getpgid
 133	i386	fchdir			sys_fchdir			__ia32_sys_fchdir
 134	i386	bdflush			sys_bdflush			__ia32_sys_bdflush
@@ -152,15 +152,15 @@
 138	i386	setfsuid		sys_setfsuid16			__ia32_sys_setfsuid16
 139	i386	setfsgid		sys_setfsgid16			__ia32_sys_setfsgid16
 140	i386	_llseek			sys_llseek			__ia32_sys_llseek
-141	i386	getdents		sys_getdents			__compat_sys_ia32_getdents
-142	i386	_newselect		sys_select			__compat_sys_ia32_select
+141	i386	getdents		sys_getdents			__ia32_compat_sys_getdents
+142	i386	_newselect		sys_select			__ia32_compat_sys_select
 143	i386	flock			sys_flock			__ia32_sys_flock
 144	i386	msync			sys_msync			__ia32_sys_msync
-145	i386	readv			sys_readv			__compat_sys_ia32_readv
-146	i386	writev			sys_writev			__compat_sys_ia32_writev
+145	i386	readv			sys_readv			__ia32_compat_sys_readv
+146	i386	writev			sys_writev			__ia32_compat_sys_writev
 147	i386	getsid			sys_getsid			__ia32_sys_getsid
 148	i386	fdatasync		sys_fdatasync			__ia32_sys_fdatasync
-149	i386	_sysctl			sys_sysctl			__compat_sys_ia32_sysctl
+149	i386	_sysctl			sys_sysctl			__ia32_compat_sys_sysctl
 150	i386	mlock			sys_mlock			__ia32_sys_mlock
 151	i386	munlock			sys_munlock			__ia32_sys_munlock
 152	i386	mlockall		sys_mlockall			__ia32_sys_mlockall
@@ -172,8 +172,8 @@
 158	i386	sched_yield		sys_sched_yield
 159	i386	sched_get_priority_max	sys_sched_get_priority_max	__ia32_sys_sched_get_priority_max
 160	i386	sched_get_priority_min	sys_sched_get_priority_min	__ia32_sys_sched_get_priority_min
-161	i386	sched_rr_get_interval	sys_sched_rr_get_interval	__compat_sys_ia32_sched_rr_get_interval
-162	i386	nanosleep		sys_nanosleep			__compat_sys_ia32_nanosleep
+161	i386	sched_rr_get_interval	sys_sched_rr_get_interval	__ia32_compat_sys_sched_rr_get_interval
+162	i386	nanosleep		sys_nanosleep			__ia32_compat_sys_nanosleep
 163	i386	mremap			sys_mremap			__ia32_sys_mremap
 164	i386	setresuid		sys_setresuid16			__ia32_sys_setresuid16
 165	i386	getresuid		sys_getresuid16			__ia32_sys_getresuid16
@@ -185,30 +185,30 @@
 171	i386	getresgid		sys_getresgid16			__ia32_sys_getresgid16
 172	i386	prctl			sys_prctl			__ia32_sys_prctl
 173	i386	rt_sigreturn		sys_rt_sigreturn		sys32_rt_sigreturn
-174	i386	rt_sigaction		sys_rt_sigaction		__compat_sys_ia32_rt_sigaction
+174	i386	rt_sigaction		sys_rt_sigaction		__ia32_compat_sys_rt_sigaction
 175	i386	rt_sigprocmask		sys_rt_sigprocmask		__ia32_sys_rt_sigprocmask
-176	i386	rt_sigpending		sys_rt_sigpending		__compat_sys_ia32_rt_sigpending
-177	i386	rt_sigtimedwait		sys_rt_sigtimedwait		__compat_sys_ia32_rt_sigtimedwait
-178	i386	rt_sigqueueinfo		sys_rt_sigqueueinfo		__compat_sys_ia32_rt_sigqueueinfo
+176	i386	rt_sigpending		sys_rt_sigpending		__ia32_compat_sys_rt_sigpending
+177	i386	rt_sigtimedwait		sys_rt_sigtimedwait		__ia32_compat_sys_rt_sigtimedwait
+178	i386	rt_sigqueueinfo		sys_rt_sigqueueinfo		__ia32_compat_sys_rt_sigqueueinfo
 179	i386	rt_sigsuspend		sys_rt_sigsuspend		__ia32_sys_rt_sigsuspend
-180	i386	pread64			sys_pread64			__compat_sys_ia32_x86_pread
-181	i386	pwrite64		sys_pwrite64			__compat_sys_ia32_x86_pwrite
+180	i386	pread64			sys_pread64			__ia32_compat_sys_x86_pread
+181	i386	pwrite64		sys_pwrite64			__ia32_compat_sys_x86_pwrite
 182	i386	chown			sys_chown16			__ia32_sys_chown16
 183	i386	getcwd			sys_getcwd			__ia32_sys_getcwd
 184	i386	capget			sys_capget			__ia32_sys_capget
 185	i386	capset			sys_capset			__ia32_sys_capset
-186	i386	sigaltstack		sys_sigaltstack			__compat_sys_ia32_sigaltstack
-187	i386	sendfile		sys_sendfile			__compat_sys_ia32_sendfile
+186	i386	sigaltstack		sys_sigaltstack			__ia32_compat_sys_sigaltstack
+187	i386	sendfile		sys_sendfile			__ia32_compat_sys_sendfile
 188	i386	getpmsg
 189	i386	putpmsg
 190	i386	vfork			sys_vfork
-191	i386	ugetrlimit		sys_getrlimit			__compat_sys_ia32_getrlimit
+191	i386	ugetrlimit		sys_getrlimit			__ia32_compat_sys_getrlimit
 192	i386	mmap2			sys_mmap_pgoff			__ia32_sys_mmap_pgoff
-193	i386	truncate64		sys_truncate64			__compat_sys_ia32_x86_truncate64
-194	i386	ftruncate64		sys_ftruncate64			__compat_sys_ia32_x86_ftruncate64
-195	i386	stat64			sys_stat64			__compat_sys_ia32_x86_stat64
-196	i386	lstat64			sys_lstat64			__compat_sys_ia32_x86_lstat64
-197	i386	fstat64			sys_fstat64			__compat_sys_ia32_x86_fstat64
+193	i386	truncate64		sys_truncate64			__ia32_compat_sys_x86_truncate64
+194	i386	ftruncate64		sys_ftruncate64			__ia32_compat_sys_x86_ftruncate64
+195	i386	stat64			sys_stat64			__ia32_compat_sys_x86_stat64
+196	i386	lstat64			sys_lstat64			__ia32_compat_sys_x86_lstat64
+197	i386	fstat64			sys_fstat64			__ia32_compat_sys_x86_fstat64
 198	i386	lchown32		sys_lchown			__ia32_sys_lchown
 199	i386	getuid32		sys_getuid
 200	i386	getgid32		sys_getgid
@@ -232,11 +232,11 @@
 218	i386	mincore			sys_mincore			__ia32_sys_mincore
 219	i386	madvise			sys_madvise			__ia32_sys_madvise
 220	i386	getdents64		sys_getdents64			__ia32_sys_getdents64
-221	i386	fcntl64			sys_fcntl64			__compat_sys_ia32_fcntl64
+221	i386	fcntl64			sys_fcntl64			__ia32_compat_sys_fcntl64
 # 222 is unused
 # 223 is unused
 224	i386	gettid			sys_gettid
-225	i386	readahead		sys_readahead			__compat_sys_ia32_x86_readahead
+225	i386	readahead		sys_readahead			__ia32_compat_sys_x86_readahead
 226	i386	setxattr		sys_setxattr			__ia32_sys_setxattr
 227	i386	lsetxattr		sys_lsetxattr			__ia32_sys_lsetxattr
 228	i386	fsetxattr		sys_fsetxattr			__ia32_sys_fsetxattr
@@ -251,67 +251,67 @@
 237	i386	fremovexattr		sys_fremovexattr		__ia32_sys_fremovexattr
 238	i386	tkill			sys_tkill			__ia32_sys_tkill
 239	i386	sendfile64		sys_sendfile64			__ia32_sys_sendfile64
-240	i386	futex			sys_futex			__compat_sys_ia32_futex
-241	i386	sched_setaffinity	sys_sched_setaffinity		__compat_sys_ia32_sched_setaffinity
-242	i386	sched_getaffinity	sys_sched_getaffinity		__compat_sys_ia32_sched_getaffinity
+240	i386	futex			sys_futex			__ia32_compat_sys_futex
+241	i386	sched_setaffinity	sys_sched_setaffinity		__ia32_compat_sys_sched_setaffinity
+242	i386	sched_getaffinity	sys_sched_getaffinity		__ia32_compat_sys_sched_getaffinity
 243	i386	set_thread_area		sys_set_thread_area		__ia32_sys_set_thread_area
 244	i386	get_thread_area		sys_get_thread_area		__ia32_sys_get_thread_area
-245	i386	io_setup		sys_io_setup			__compat_sys_ia32_io_setup
+245	i386	io_setup		sys_io_setup			__ia32_compat_sys_io_setup
 246	i386	io_destroy		sys_io_destroy			__ia32_sys_io_destroy
-247	i386	io_getevents		sys_io_getevents		__compat_sys_ia32_io_getevents
-248	i386	io_submit		sys_io_submit			__compat_sys_ia32_io_submit
+247	i386	io_getevents		sys_io_getevents		__ia32_compat_sys_io_getevents
+248	i386	io_submit		sys_io_submit			__ia32_compat_sys_io_submit
 249	i386	io_cancel		sys_io_cancel			__ia32_sys_io_cancel
-250	i386	fadvise64		sys_fadvise64			__compat_sys_ia32_x86_fadvise64
+250	i386	fadvise64		sys_fadvise64			__ia32_compat_sys_x86_fadvise64
 # 251 is available for reuse (was briefly sys_set_zone_reclaim)
 252	i386	exit_group		sys_exit_group			__ia32_sys_exit_group
-253	i386	lookup_dcookie		sys_lookup_dcookie		__compat_sys_ia32_lookup_dcookie
+253	i386	lookup_dcookie		sys_lookup_dcookie		__ia32_compat_sys_lookup_dcookie
 254	i386	epoll_create		sys_epoll_create		__ia32_sys_epoll_create
 255	i386	epoll_ctl		sys_epoll_ctl			__ia32_sys_epoll_ctl
 256	i386	epoll_wait		sys_epoll_wait			__ia32_sys_epoll_wait
 257	i386	remap_file_pages	sys_remap_file_pages		__ia32_sys_remap_file_pages
 258	i386	set_tid_address		sys_set_tid_address		__ia32_sys_set_tid_address
-259	i386	timer_create		sys_timer_create		__compat_sys_ia32_timer_create
-260	i386	timer_settime		sys_timer_settime		__compat_sys_ia32_timer_settime
-261	i386	timer_gettime		sys_timer_gettime		__compat_sys_ia32_timer_gettime
+259	i386	timer_create		sys_timer_create		__ia32_compat_sys_timer_create
+260	i386	timer_settime		sys_timer_settime		__ia32_compat_sys_timer_settime
+261	i386	timer_gettime		sys_timer_gettime		__ia32_compat_sys_timer_gettime
 262	i386	timer_getoverrun	sys_timer_getoverrun		__ia32_sys_timer_getoverrun
 263	i386	timer_delete		sys_timer_delete		__ia32_sys_timer_delete
-264	i386	clock_settime		sys_clock_settime		__compat_sys_ia32_clock_settime
-265	i386	clock_gettime		sys_clock_gettime		__compat_sys_ia32_clock_gettime
-266	i386	clock_getres		sys_clock_getres		__compat_sys_ia32_clock_getres
-267	i386	clock_nanosleep		sys_clock_nanosleep		__compat_sys_ia32_clock_nanosleep
-268	i386	statfs64		sys_statfs64			__compat_sys_ia32_statfs64
-269	i386	fstatfs64		sys_fstatfs64			__compat_sys_ia32_fstatfs64
+264	i386	clock_settime		sys_clock_settime		__ia32_compat_sys_clock_settime
+265	i386	clock_gettime		sys_clock_gettime		__ia32_compat_sys_clock_gettime
+266	i386	clock_getres		sys_clock_getres		__ia32_compat_sys_clock_getres
+267	i386	clock_nanosleep		sys_clock_nanosleep		__ia32_compat_sys_clock_nanosleep
+268	i386	statfs64		sys_statfs64			__ia32_compat_sys_statfs64
+269	i386	fstatfs64		sys_fstatfs64			__ia32_compat_sys_fstatfs64
 270	i386	tgkill			sys_tgkill			__ia32_sys_tgkill
-271	i386	utimes			sys_utimes			__compat_sys_ia32_utimes
-272	i386	fadvise64_64		sys_fadvise64_64		__compat_sys_ia32_x86_fadvise64_64
+271	i386	utimes			sys_utimes			__ia32_compat_sys_utimes
+272	i386	fadvise64_64		sys_fadvise64_64		__ia32_compat_sys_x86_fadvise64_64
 273	i386	vserver
 274	i386	mbind			sys_mbind			__ia32_sys_mbind
-275	i386	get_mempolicy		sys_get_mempolicy		__compat_sys_ia32_get_mempolicy
+275	i386	get_mempolicy		sys_get_mempolicy		__ia32_compat_sys_get_mempolicy
 276	i386	set_mempolicy		sys_set_mempolicy		__ia32_sys_set_mempolicy
-277	i386	mq_open			sys_mq_open			__compat_sys_ia32_mq_open
+277	i386	mq_open			sys_mq_open			__ia32_compat_sys_mq_open
 278	i386	mq_unlink		sys_mq_unlink			__ia32_sys_mq_unlink
-279	i386	mq_timedsend		sys_mq_timedsend		__compat_sys_ia32_mq_timedsend
-280	i386	mq_timedreceive		sys_mq_timedreceive		__compat_sys_ia32_mq_timedreceive
-281	i386	mq_notify		sys_mq_notify			__compat_sys_ia32_mq_notify
-282	i386	mq_getsetattr		sys_mq_getsetattr		__compat_sys_ia32_mq_getsetattr
-283	i386	kexec_load		sys_kexec_load			__compat_sys_ia32_kexec_load
-284	i386	waitid			sys_waitid			__compat_sys_ia32_waitid
+279	i386	mq_timedsend		sys_mq_timedsend		__ia32_compat_sys_mq_timedsend
+280	i386	mq_timedreceive		sys_mq_timedreceive		__ia32_compat_sys_mq_timedreceive
+281	i386	mq_notify		sys_mq_notify			__ia32_compat_sys_mq_notify
+282	i386	mq_getsetattr		sys_mq_getsetattr		__ia32_compat_sys_mq_getsetattr
+283	i386	kexec_load		sys_kexec_load			__ia32_compat_sys_kexec_load
+284	i386	waitid			sys_waitid			__ia32_compat_sys_waitid
 # 285 sys_setaltroot
 286	i386	add_key			sys_add_key			__ia32_sys_add_key
 287	i386	request_key		sys_request_key			__ia32_sys_request_key
-288	i386	keyctl			sys_keyctl			__compat_sys_ia32_keyctl
+288	i386	keyctl			sys_keyctl			__ia32_compat_sys_keyctl
 289	i386	ioprio_set		sys_ioprio_set			__ia32_sys_ioprio_set
 290	i386	ioprio_get		sys_ioprio_get			__ia32_sys_ioprio_get
 291	i386	inotify_init		sys_inotify_init
 292	i386	inotify_add_watch	sys_inotify_add_watch		__ia32_sys_inotify_add_watch
 293	i386	inotify_rm_watch	sys_inotify_rm_watch		__ia32_sys_inotify_rm_watch
 294	i386	migrate_pages		sys_migrate_pages		__ia32_sys_migrate_pages
-295	i386	openat			sys_openat			__compat_sys_ia32_openat
+295	i386	openat			sys_openat			__ia32_compat_sys_openat
 296	i386	mkdirat			sys_mkdirat			__ia32_sys_mkdirat
 297	i386	mknodat			sys_mknodat			__ia32_sys_mknodat
 298	i386	fchownat		sys_fchownat			__ia32_sys_fchownat
-299	i386	futimesat		sys_futimesat			__compat_sys_ia32_futimesat
-300	i386	fstatat64		sys_fstatat64			__compat_sys_ia32_x86_fstatat
+299	i386	futimesat		sys_futimesat			__ia32_compat_sys_futimesat
+300	i386	fstatat64		sys_fstatat64			__ia32_compat_sys_x86_fstatat
 301	i386	unlinkat		sys_unlinkat			__ia32_sys_unlinkat
 302	i386	renameat		sys_renameat			__ia32_sys_renameat
 303	i386	linkat			sys_linkat			__ia32_sys_linkat
@@ -319,47 +319,47 @@
 305	i386	readlinkat		sys_readlinkat			__ia32_sys_readlinkat
 306	i386	fchmodat		sys_fchmodat			__ia32_sys_fchmodat
 307	i386	faccessat		sys_faccessat			__ia32_sys_faccessat
-308	i386	pselect6		sys_pselect6			__compat_sys_ia32_pselect6
-309	i386	ppoll			sys_ppoll			__compat_sys_ia32_ppoll
+308	i386	pselect6		sys_pselect6			__ia32_compat_sys_pselect6
+309	i386	ppoll			sys_ppoll			__ia32_compat_sys_ppoll
 310	i386	unshare			sys_unshare			__ia32_sys_unshare
-311	i386	set_robust_list		sys_set_robust_list		__compat_sys_ia32_set_robust_list
-312	i386	get_robust_list		sys_get_robust_list		__compat_sys_ia32_get_robust_list
+311	i386	set_robust_list		sys_set_robust_list		__ia32_compat_sys_set_robust_list
+312	i386	get_robust_list		sys_get_robust_list		__ia32_compat_sys_get_robust_list
 313	i386	splice			sys_splice			__ia32_sys_splice
-314	i386	sync_file_range		sys_sync_file_range		__compat_sys_ia32_x86_sync_file_range
+314	i386	sync_file_range		sys_sync_file_range		__ia32_compat_sys_x86_sync_file_range
 315	i386	tee			sys_tee				__ia32_sys_tee
-316	i386	vmsplice		sys_vmsplice			__compat_sys_ia32_vmsplice
-317	i386	move_pages		sys_move_pages			__compat_sys_ia32_move_pages
+316	i386	vmsplice		sys_vmsplice			__ia32_compat_sys_vmsplice
+317	i386	move_pages		sys_move_pages			__ia32_compat_sys_move_pages
 318	i386	getcpu			sys_getcpu			__ia32_sys_getcpu
 319	i386	epoll_pwait		sys_epoll_pwait			__ia32_sys_epoll_pwait
-320	i386	utimensat		sys_utimensat			__compat_sys_ia32_utimensat
-321	i386	signalfd		sys_signalfd			__compat_sys_ia32_signalfd
+320	i386	utimensat		sys_utimensat			__ia32_compat_sys_utimensat
+321	i386	signalfd		sys_signalfd			__ia32_compat_sys_signalfd
 322	i386	timerfd_create		sys_timerfd_create		__ia32_sys_timerfd_create
 323	i386	eventfd			sys_eventfd			__ia32_sys_eventfd
-324	i386	fallocate		sys_fallocate			__compat_sys_ia32_x86_fallocate
-325	i386	timerfd_settime		sys_timerfd_settime		__compat_sys_ia32_timerfd_settime
-326	i386	timerfd_gettime		sys_timerfd_gettime		__compat_sys_ia32_timerfd_gettime
-327	i386	signalfd4		sys_signalfd4			__compat_sys_ia32_signalfd4
+324	i386	fallocate		sys_fallocate			__ia32_compat_sys_x86_fallocate
+325	i386	timerfd_settime		sys_timerfd_settime		__ia32_compat_sys_timerfd_settime
+326	i386	timerfd_gettime		sys_timerfd_gettime		__ia32_compat_sys_timerfd_gettime
+327	i386	signalfd4		sys_signalfd4			__ia32_compat_sys_signalfd4
 328	i386	eventfd2		sys_eventfd2			__ia32_sys_eventfd2
 329	i386	epoll_create1		sys_epoll_create1		__ia32_sys_epoll_create1
 330	i386	dup3			sys_dup3			__ia32_sys_dup3
 331	i386	pipe2			sys_pipe2			__ia32_sys_pipe2
 332	i386	inotify_init1		sys_inotify_init1		__ia32_sys_inotify_init1
-333	i386	preadv			sys_preadv			__compat_sys_ia32_preadv
-334	i386	pwritev			sys_pwritev			__compat_sys_ia32_pwritev
-335	i386	rt_tgsigqueueinfo	sys_rt_tgsigqueueinfo		__compat_sys_ia32_rt_tgsigqueueinfo
+333	i386	preadv			sys_preadv			__ia32_compat_sys_preadv
+334	i386	pwritev			sys_pwritev			__ia32_compat_sys_pwritev
+335	i386	rt_tgsigqueueinfo	sys_rt_tgsigqueueinfo		__ia32_compat_sys_rt_tgsigqueueinfo
 336	i386	perf_event_open		sys_perf_event_open		__ia32_sys_perf_event_open
-337	i386	recvmmsg		sys_recvmmsg			__compat_sys_ia32_recvmmsg
+337	i386	recvmmsg		sys_recvmmsg			__ia32_compat_sys_recvmmsg
 338	i386	fanotify_init		sys_fanotify_init		__ia32_sys_fanotify_init
-339	i386	fanotify_mark		sys_fanotify_mark		__compat_sys_ia32_fanotify_mark
+339	i386	fanotify_mark		sys_fanotify_mark		__ia32_compat_sys_fanotify_mark
 340	i386	prlimit64		sys_prlimit64			__ia32_sys_prlimit64
 341	i386	name_to_handle_at	sys_name_to_handle_at		__ia32_sys_name_to_handle_at
-342	i386	open_by_handle_at	sys_open_by_handle_at		__compat_sys_ia32_open_by_handle_at
-343	i386	clock_adjtime		sys_clock_adjtime		__compat_sys_ia32_clock_adjtime
+342	i386	open_by_handle_at	sys_open_by_handle_at		__ia32_compat_sys_open_by_handle_at
+343	i386	clock_adjtime		sys_clock_adjtime		__ia32_compat_sys_clock_adjtime
 344	i386	syncfs			sys_syncfs			__ia32_sys_syncfs
-345	i386	sendmmsg		sys_sendmmsg			__compat_sys_ia32_sendmmsg
+345	i386	sendmmsg		sys_sendmmsg			__ia32_compat_sys_sendmmsg
 346	i386	setns			sys_setns			__ia32_sys_setns
-347	i386	process_vm_readv	sys_process_vm_readv		__compat_sys_ia32_process_vm_readv
-348	i386	process_vm_writev	sys_process_vm_writev		__compat_sys_ia32_process_vm_writev
+347	i386	process_vm_readv	sys_process_vm_readv		__ia32_compat_sys_process_vm_readv
+348	i386	process_vm_writev	sys_process_vm_writev		__ia32_compat_sys_process_vm_writev
 349	i386	kcmp			sys_kcmp			__ia32_sys_kcmp
 350	i386	finit_module		sys_finit_module		__ia32_sys_finit_module
 351	i386	sched_setattr		sys_sched_setattr		__ia32_sys_sched_setattr
@@ -369,30 +369,30 @@
 355	i386	getrandom		sys_getrandom			__ia32_sys_getrandom
 356	i386	memfd_create		sys_memfd_create		__ia32_sys_memfd_create
 357	i386	bpf			sys_bpf				__ia32_sys_bpf
-358	i386	execveat		sys_execveat			__compat_sys_ia32_execveat
+358	i386	execveat		sys_execveat			__ia32_compat_sys_execveat
 359	i386	socket			sys_socket			__ia32_sys_socket
 360	i386	socketpair		sys_socketpair			__ia32_sys_socketpair
 361	i386	bind			sys_bind			__ia32_sys_bind
 362	i386	connect			sys_connect			__ia32_sys_connect
 363	i386	listen			sys_listen			__ia32_sys_listen
 364	i386	accept4			sys_accept4			__ia32_sys_accept4
-365	i386	getsockopt		sys_getsockopt			__compat_sys_ia32_getsockopt
-366	i386	setsockopt		sys_setsockopt			__compat_sys_ia32_setsockopt
+365	i386	getsockopt		sys_getsockopt			__ia32_compat_sys_getsockopt
+366	i386	setsockopt		sys_setsockopt			__ia32_compat_sys_setsockopt
 367	i386	getsockname		sys_getsockname			__ia32_sys_getsockname
 368	i386	getpeername		sys_getpeername			__ia32_sys_getpeername
 369	i386	sendto			sys_sendto			__ia32_sys_sendto
-370	i386	sendmsg			sys_sendmsg			__compat_sys_ia32_sendmsg
-371	i386	recvfrom		sys_recvfrom			__compat_sys_ia32_recvfrom
-372	i386	recvmsg			sys_recvmsg			__compat_sys_ia32_recvmsg
+370	i386	sendmsg			sys_sendmsg			__ia32_compat_sys_sendmsg
+371	i386	recvfrom		sys_recvfrom			__ia32_compat_sys_recvfrom
+372	i386	recvmsg			sys_recvmsg			__ia32_compat_sys_recvmsg
 373	i386	shutdown		sys_shutdown			__ia32_sys_shutdown
 374	i386	userfaultfd		sys_userfaultfd			__ia32_sys_userfaultfd
 375	i386	membarrier		sys_membarrier			__ia32_sys_membarrier
 376	i386	mlock2			sys_mlock2			__ia32_sys_mlock2
 377	i386	copy_file_range		sys_copy_file_range		__ia32_sys_copy_file_range
-378	i386	preadv2			sys_preadv2			__compat_sys_ia32_preadv2
-379	i386	pwritev2		sys_pwritev2			__compat_sys_ia32_pwritev2
+378	i386	preadv2			sys_preadv2			__ia32_compat_sys_preadv2
+379	i386	pwritev2		sys_pwritev2			__ia32_compat_sys_pwritev2
 380	i386	pkey_mprotect		sys_pkey_mprotect		__ia32_sys_pkey_mprotect
 381	i386	pkey_alloc		sys_pkey_alloc			__ia32_sys_pkey_alloc
 382	i386	pkey_free		sys_pkey_free			__ia32_sys_pkey_free
 383	i386	statx			sys_statx			__ia32_sys_statx
-384	i386	arch_prctl		sys_arch_prctl			__compat_sys_ia32_arch_prctl
+384	i386	arch_prctl		sys_arch_prctl			__ia32_compat_sys_arch_prctl
diff --git a/arch/x86/entry/syscalls/syscall_64.tbl b/arch/x86/entry/syscalls/syscall_64.tbl
index a83c0f7f462f..73f4951fc2fa 100644
--- a/arch/x86/entry/syscalls/syscall_64.tbl
+++ b/arch/x86/entry/syscalls/syscall_64.tbl
@@ -342,43 +342,43 @@
 
 #
 # x32-specific system call numbers start at 512 to avoid cache impact
-# for native 64-bit operation. The __compat_sys_x32 stubs are created
+# for native 64-bit operation. The __x32_compat_sys stubs are created
 # on-the-fly for compat_sys_*() compatibility system calls if X86_X32
 # is defined.
 #
-512	x32	rt_sigaction		__compat_sys_x32_rt_sigaction
+512	x32	rt_sigaction		__x32_compat_sys_rt_sigaction
 513	x32	rt_sigreturn		sys32_x32_rt_sigreturn
-514	x32	ioctl			__compat_sys_x32_ioctl
-515	x32	readv			__compat_sys_x32_readv
-516	x32	writev			__compat_sys_x32_writev
-517	x32	recvfrom		__compat_sys_x32_recvfrom
-518	x32	sendmsg			__compat_sys_x32_sendmsg
-519	x32	recvmsg			__compat_sys_x32_recvmsg
-520	x32	execve			__compat_sys_x32_execve/ptregs
-521	x32	ptrace			__compat_sys_x32_ptrace
-522	x32	rt_sigpending		__compat_sys_x32_rt_sigpending
-523	x32	rt_sigtimedwait		__compat_sys_x32_rt_sigtimedwait
-524	x32	rt_sigqueueinfo		__compat_sys_x32_rt_sigqueueinfo
-525	x32	sigaltstack		__compat_sys_x32_sigaltstack
-526	x32	timer_create		__compat_sys_x32_timer_create
-527	x32	mq_notify		__compat_sys_x32_mq_notify
-528	x32	kexec_load		__compat_sys_x32_kexec_load
-529	x32	waitid			__compat_sys_x32_waitid
-530	x32	set_robust_list		__compat_sys_x32_set_robust_list
-531	x32	get_robust_list		__compat_sys_x32_get_robust_list
-532	x32	vmsplice		__compat_sys_x32_vmsplice
-533	x32	move_pages		__compat_sys_x32_move_pages
-534	x32	preadv			__compat_sys_x32_preadv64
-535	x32	pwritev			__compat_sys_x32_pwritev64
-536	x32	rt_tgsigqueueinfo	__compat_sys_x32_rt_tgsigqueueinfo
-537	x32	recvmmsg		__compat_sys_x32_recvmmsg
-538	x32	sendmmsg		__compat_sys_x32_sendmmsg
-539	x32	process_vm_readv	__compat_sys_x32_process_vm_readv
-540	x32	process_vm_writev	__compat_sys_x32_process_vm_writev
-541	x32	setsockopt		__compat_sys_x32_setsockopt
-542	x32	getsockopt		__compat_sys_x32_getsockopt
-543	x32	io_setup		__compat_sys_x32_io_setup
-544	x32	io_submit		__compat_sys_x32_io_submit
-545	x32	execveat		__compat_sys_x32_execveat/ptregs
-546	x32	preadv2			__compat_sys_x32_preadv64v2
-547	x32	pwritev2		__compat_sys_x32_pwritev64v2
+514	x32	ioctl			__x32_compat_sys_ioctl
+515	x32	readv			__x32_compat_sys_readv
+516	x32	writev			__x32_compat_sys_writev
+517	x32	recvfrom		__x32_compat_sys_recvfrom
+518	x32	sendmsg			__x32_compat_sys_sendmsg
+519	x32	recvmsg			__x32_compat_sys_recvmsg
+520	x32	execve			__x32_compat_sys_execve/ptregs
+521	x32	ptrace			__x32_compat_sys_ptrace
+522	x32	rt_sigpending		__x32_compat_sys_rt_sigpending
+523	x32	rt_sigtimedwait		__x32_compat_sys_rt_sigtimedwait
+524	x32	rt_sigqueueinfo		__x32_compat_sys_rt_sigqueueinfo
+525	x32	sigaltstack		__x32_compat_sys_sigaltstack
+526	x32	timer_create		__x32_compat_sys_timer_create
+527	x32	mq_notify		__x32_compat_sys_mq_notify
+528	x32	kexec_load		__x32_compat_sys_kexec_load
+529	x32	waitid			__x32_compat_sys_waitid
+530	x32	set_robust_list		__x32_compat_sys_set_robust_list
+531	x32	get_robust_list		__x32_compat_sys_get_robust_list
+532	x32	vmsplice		__x32_compat_sys_vmsplice
+533	x32	move_pages		__x32_compat_sys_move_pages
+534	x32	preadv			__x32_compat_sys_preadv64
+535	x32	pwritev			__x32_compat_sys_pwritev64
+536	x32	rt_tgsigqueueinfo	__x32_compat_sys_rt_tgsigqueueinfo
+537	x32	recvmmsg		__x32_compat_sys_recvmmsg
+538	x32	sendmmsg		__x32_compat_sys_sendmmsg
+539	x32	process_vm_readv	__x32_compat_sys_process_vm_readv
+540	x32	process_vm_writev	__x32_compat_sys_process_vm_writev
+541	x32	setsockopt		__x32_compat_sys_setsockopt
+542	x32	getsockopt		__x32_compat_sys_getsockopt
+543	x32	io_setup		__x32_compat_sys_io_setup
+544	x32	io_submit		__x32_compat_sys_io_submit
+545	x32	execveat		__x32_compat_sys_execveat/ptregs
+546	x32	preadv2			__x32_compat_sys_preadv64v2
+547	x32	pwritev2		__x32_compat_sys_pwritev64v2
diff --git a/arch/x86/include/asm/syscall_wrapper.h b/arch/x86/include/asm/syscall_wrapper.h
index 798a3c2bff4f..8d0951cfc2d4 100644
--- a/arch/x86/include/asm/syscall_wrapper.h
+++ b/arch/x86/include/asm/syscall_wrapper.h
@@ -29,11 +29,11 @@
  * case as well.
  */
 #define COMPAT_SC_IA32_STUBx(x, name, ...)				\
-	asmlinkage long __compat_sys_ia32##name(const struct pt_regs *regs);\
-	ALLOW_ERROR_INJECTION(__compat_sys_ia32##name, ERRNO);		\
-	asmlinkage long __compat_sys_ia32##name(const struct pt_regs *regs)\
+	asmlinkage long __ia32_compat_sys##name(const struct pt_regs *regs);\
+	ALLOW_ERROR_INJECTION(__ia32_compat_sys##name, ERRNO);		\
+	asmlinkage long __ia32_compat_sys##name(const struct pt_regs *regs)\
 	{								\
-		return c_SyS##name(SC_IA32_REGS_TO_ARGS(x,__VA_ARGS__));\
+		return __se_compat_sys##name(SC_IA32_REGS_TO_ARGS(x,__VA_ARGS__));\
 	}								\
 
 #define SC_IA32_WRAPPERx(x, name, ...)					\
@@ -65,11 +65,11 @@
  * with x86_64 obviously do not need such care.
  */
 #define COMPAT_SC_X32_STUBx(x, name, ...)				\
-	asmlinkage long __compat_sys_x32##name(const struct pt_regs *regs);\
-	ALLOW_ERROR_INJECTION(__compat_sys_x32##name, ERRNO);		\
-	asmlinkage long __compat_sys_x32##name(const struct pt_regs *regs)\
+	asmlinkage long __x32_compat_sys##name(const struct pt_regs *regs);\
+	ALLOW_ERROR_INJECTION(__x32_compat_sys##name, ERRNO);		\
+	asmlinkage long __x32_compat_sys##name(const struct pt_regs *regs)\
 	{								\
-		return c_SyS##name(SC_X86_64_REGS_TO_ARGS(x,__VA_ARGS__));\
+		return __se_compat_sys##name(SC_X86_64_REGS_TO_ARGS(x,__VA_ARGS__));\
 	}								\
 
 #else /* CONFIG_X86_X32 */
@@ -84,16 +84,16 @@
  * of them. There is no need to implement COMPAT_SYSCALL_DEFINE0, as it is
  * unused on x86.
  */
-#define COMPAT_SYSCALL_DEFINEx(x, name, ...)				\
-	static long c_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__));	\
-	static inline long C_SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
-	COMPAT_SC_IA32_STUBx(x, name, __VA_ARGS__)			\
-	COMPAT_SC_X32_STUBx(x, name, __VA_ARGS__)			\
-	static long c_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__))		\
-	{								\
-		return C_SYSC##name(__MAP(x,__SC_DELOUSE,__VA_ARGS__));	\
-	}								\
-	static inline long C_SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__))
+#define COMPAT_SYSCALL_DEFINEx(x, name, ...)					\
+	static long __se_compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__));	\
+	static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
+	COMPAT_SC_IA32_STUBx(x, name, __VA_ARGS__)				\
+	COMPAT_SC_X32_STUBx(x, name, __VA_ARGS__)				\
+	static long __se_compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__))	\
+	{									\
+		return __do_compat_sys##name(__MAP(x,__SC_DELOUSE,__VA_ARGS__));\
+	}									\
+	static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
 
 /*
  * As some compat syscalls may not be implemented, we need to expand
@@ -101,12 +101,12 @@
  * kernel/time/posix-stubs.c to cover this case as well.
  */
 #define COND_SYSCALL_COMPAT(name) 					\
-	cond_syscall(__compat_sys_ia32_##name);				\
-	cond_syscall(__compat_sys_x32_##name)
+	cond_syscall(__ia32_compat_sys_##name);				\
+	cond_syscall(__x32_compat_sys_##name)
 
 #define COMPAT_SYS_NI(name)						\
-	SYSCALL_ALIAS(__compat_sys_ia32_##name, sys_ni_posix_timers);	\
-	SYSCALL_ALIAS(__compat_sys_x32_##name, sys_ni_posix_timers)
+	SYSCALL_ALIAS(__ia32_compat_sys_##name, sys_ni_posix_timers);	\
+	SYSCALL_ALIAS(__x32_compat_sys_##name, sys_ni_posix_timers)
 
 #endif /* CONFIG_COMPAT */
 
diff --git a/arch/x86/include/asm/syscalls.h b/arch/x86/include/asm/syscalls.h
index d4d18d94695c..9fa979dd0d9d 100644
--- a/arch/x86/include/asm/syscalls.h
+++ b/arch/x86/include/asm/syscalls.h
@@ -20,7 +20,7 @@
 long ksys_ioperm(unsigned long from, unsigned long num, int turn_on);
 
 #ifdef CONFIG_X86_32
-/* 
+/*
  * These definitions are only valid on pure 32-bit systems; x86-64 uses a
  * different syscall calling convention
  */
diff --git a/include/linux/compat.h b/include/linux/compat.h
index 2d85ec5cfda2..aca050aac7b6 100644
--- a/include/linux/compat.h
+++ b/include/linux/compat.h
@@ -63,19 +63,24 @@
 #define COMPAT_SYSCALL_DEFINE6(name, ...) \
 	COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
 
+/*
+ * The asmlinkage stub is aliased to a function named __se_compat_sys_*() which
+ * sign-extends 32-bit ints to longs whenever needed. The actual work is
+ * done within __do_compat_sys_*().
+ */
 #ifndef COMPAT_SYSCALL_DEFINEx
-#define COMPAT_SYSCALL_DEFINEx(x, name, ...)				\
-	asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
-	asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))\
-		__attribute__((alias(__stringify(compat_SyS##name))));  \
-	ALLOW_ERROR_INJECTION(compat_sys##name, ERRNO);	\
-	static inline long C_SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
-	asmlinkage long compat_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__));\
-	asmlinkage long compat_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__))\
-	{								\
-		return C_SYSC##name(__MAP(x,__SC_DELOUSE,__VA_ARGS__));	\
-	}								\
-	static inline long C_SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__))
+#define COMPAT_SYSCALL_DEFINEx(x, name, ...)					\
+	asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));	\
+	asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))	\
+		__attribute__((alias(__stringify(__se_compat_sys##name))));	\
+	ALLOW_ERROR_INJECTION(compat_sys##name, ERRNO);				\
+	static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
+	asmlinkage long __se_compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__));	\
+	asmlinkage long __se_compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__))	\
+	{									\
+		return __do_compat_sys##name(__MAP(x,__SC_DELOUSE,__VA_ARGS__));\
+	}									\
+	static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
 #endif /* COMPAT_SYSCALL_DEFINEx */
 
 #ifndef compat_user_stack_pointer
diff --git a/scripts/bloat-o-meter b/scripts/bloat-o-meter
index ce129e61cc65..a923f05edb36 100755
--- a/scripts/bloat-o-meter
+++ b/scripts/bloat-o-meter
@@ -31,7 +31,7 @@ def getsizes(file, format):
                 # strip generated symbols
                 if name.startswith("__mod_"): continue
                 if name.startswith("__se_sys"): continue
-                if name.startswith("compat_SyS_"): continue
+                if name.startswith("__se_compat_sys"): continue
                 if name == "linux_banner": continue
                 # statics and some other optimizations adds random .NUMBER
                 name = re_NUMBER.sub('', name)
-- 
2.17.0

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ