aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/entry/common.c
diff options
context:
space:
mode:
authorBrian Gerst <[email protected]>2020-03-13 19:51:42 +0000
committerThomas Gleixner <[email protected]>2020-03-21 15:03:24 +0000
commit25c619e59b395a8c970d339f9c714302738e350e (patch)
tree74567402d083b53756dfafac858c9ff6f70168ca /arch/x86/entry/common.c
parentx86/entry/32: Use IA32-specific wrappers for syscalls taking 64-bit arguments (diff)
downloadkernel-25c619e59b395a8c970d339f9c714302738e350e.tar.gz
kernel-25c619e59b395a8c970d339f9c714302738e350e.zip
x86/entry/32: Enable pt_regs based syscalls
Enable pt_regs based syscalls for 32-bit. This makes the 32-bit native kernel consistent with the 64-bit kernel, and improves the syscall interface by not needing to push all 6 potential arguments onto the stack. Signed-off-by: Brian Gerst <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Reviewed-by: Dominik Brodowski <[email protected]> Link: https://lkml.kernel.org/r/[email protected]
Diffstat (limited to 'arch/x86/entry/common.c')
-rw-r--r--arch/x86/entry/common.c15
1 files changed, 0 insertions, 15 deletions
diff --git a/arch/x86/entry/common.c b/arch/x86/entry/common.c
index 149bf54501ff..6062e8ebc315 100644
--- a/arch/x86/entry/common.c
+++ b/arch/x86/entry/common.c
@@ -333,20 +333,7 @@ static __always_inline void do_syscall_32_irqs_on(struct pt_regs *regs)
if (likely(nr < IA32_NR_syscalls)) {
nr = array_index_nospec(nr, IA32_NR_syscalls);
-#ifdef CONFIG_IA32_EMULATION
regs->ax = ia32_sys_call_table[nr](regs);
-#else
- /*
- * It's possible that a 32-bit syscall implementation
- * takes a 64-bit parameter but nonetheless assumes that
- * the high bits are zero. Make sure we zero-extend all
- * of the args.
- */
- regs->ax = ia32_sys_call_table[nr](
- (unsigned int)regs->bx, (unsigned int)regs->cx,
- (unsigned int)regs->dx, (unsigned int)regs->si,
- (unsigned int)regs->di, (unsigned int)regs->bp);
-#endif /* CONFIG_IA32_EMULATION */
}
syscall_return_slowpath(regs);
@@ -439,9 +426,7 @@ __visible long do_fast_syscall_32(struct pt_regs *regs)
}
#endif
-#ifdef CONFIG_X86_64
SYSCALL_DEFINE0(ni_syscall)
{
return -ENOSYS;
}
-#endif