summaryrefslogtreecommitdiff
path: root/arch/x86/entry/syscall_32.c
diff options
context:
space:
mode:
authorBrian Gerst <brgerst@gmail.com>2020-03-13 15:51:38 -0400
committerThomas Gleixner <tglx@linutronix.de>2020-03-21 16:03:23 +0100
commitcab56d3484d4bb8b21e4d9500392ac1ce99af026 (patch)
treed4a8beaa2f48e787385c32b5b16a5c219823a1e7 /arch/x86/entry/syscall_32.c
parent8210efcb153625d2bf4bb79875ddc78eee2aba3e (diff)
x86/entry: Remove ABI prefixes from functions in syscall tables
Move the ABI prefixes to the __SYSCALL_[abi]() macros. This allows removal of the need to strip the prefix for UML. Signed-off-by: Brian Gerst <brgerst@gmail.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lkml.kernel.org/r/20200313195144.164260-13-brgerst@gmail.com
Diffstat (limited to 'arch/x86/entry/syscall_32.c')
-rw-r--r--arch/x86/entry/syscall_32.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/x86/entry/syscall_32.c b/arch/x86/entry/syscall_32.c
index 9f4cab4a56d8..41ec9c66fe15 100644
--- a/arch/x86/entry/syscall_32.c
+++ b/arch/x86/entry/syscall_32.c
@@ -9,7 +9,7 @@
#ifdef CONFIG_IA32_EMULATION
/* On X86_64, we use struct pt_regs * to pass parameters to syscalls */
-#define __SYSCALL_I386(nr, sym) extern asmlinkage long sym(const struct pt_regs *);
+#define __SYSCALL_I386(nr, sym) extern asmlinkage long __ia32_##sym(const struct pt_regs *);
#define __sys_ni_syscall __ia32_sys_ni_syscall
#else /* CONFIG_IA32_EMULATION */
#define __SYSCALL_I386(nr, sym) extern asmlinkage long sym(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long);
@@ -20,7 +20,11 @@ extern asmlinkage long sys_ni_syscall(unsigned long, unsigned long, unsigned lon
#include <asm/syscalls_32.h>
#undef __SYSCALL_I386
+#ifdef CONFIG_IA32_EMULATION
+#define __SYSCALL_I386(nr, sym) [nr] = __ia32_##sym,
+#else /* CONFIG_IA32_EMULATION */
#define __SYSCALL_I386(nr, sym) [nr] = sym,
+#endif /* CONFIG_IA32_EMULATION */
__visible const sys_call_ptr_t ia32_sys_call_table[__NR_ia32_syscall_max+1] = {
/*