x86/entry/32: Use IA32-specific wrappers for syscalls taking 64-bit arguments
authorBrian Gerst <brgerst@gmail.com>
Fri, 13 Mar 2020 19:51:41 +0000 (15:51 -0400)
committerThomas Gleixner <tglx@linutronix.de>
Sat, 21 Mar 2020 15:03:24 +0000 (16:03 +0100)
commit121b32a58a3af89a780cf194ce3769fc4120e574
tree17d48338ad3f310e8893d3f06603e21b64e683b0
parent866128a996647097d599c6b91deb340d4da593a8
x86/entry/32: Use IA32-specific wrappers for syscalls taking 64-bit arguments

For the 32-bit syscall interface, 64-bit arguments (loff_t) are passed via
a pair of 32-bit registers.  These register pairs end up in consecutive stack
slots, which matches the C ABI for 64-bit arguments.  But when accessing the
registers directly from pt_regs, the wrapper needs to manually reassemble the
64-bit value.  These wrappers already exist for 32-bit compat, so make them
available to 32-bit native in preparation for enabling pt_regs-based syscalls.

Signed-off-by: Brian Gerst <brgerst@gmail.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Dominik Brodowski <linux@dominikbrodowski.net>
Link: https://lkml.kernel.org/r/20200313195144.164260-16-brgerst@gmail.com
arch/x86/entry/syscalls/syscall_32.tbl
arch/x86/ia32/Makefile
arch/x86/kernel/Makefile
arch/x86/kernel/sys_ia32.c [moved from arch/x86/ia32/sys_ia32.c with 83% similarity]
arch/x86/um/Makefile