-
Masahiro Yamada authored
The SYSCALL macros are mapped to symbols as follows: __SYSCALL_COMMON(nr, sym) --> __x64_<sym> __SYSCALL_X32(nr, sym) --> __x32_<sym> Originally, the syscalls in the x32 special range (512-547) were all compat. This assumption is now broken after the following commits: 55db9c0e ("net: remove compat_sys_{get,set}sockopt") 5f764d62 ("fs: remove the compat readv/writev syscalls") 598b3cec ("fs: remove compat_sys_vmsplice") c3973b40 ("mm: remove compat_process_vm_{readv,writev}") Those commits redefined __x32_sys_* to __x64_sys_* because there is no stub like __x32_sys_*. Defining them as follows is more sensible and cleaner. __SYSCALL_COMMON(nr, sym) --> __x64_<sym> __SYSCALL_X32(nr, sym) --> __x64_<sym> This works because both x86_64 and x32 use the same ABI (RDI, RSI, RDX, R10, R8, R9) The ugly #define __x32_sys_* will go away. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/r/20210517073815.97426-2-masahiroy@kernel.org
2e958a8a