diff options
| author | David S. Miller <davem@davemloft.net> | 2018-04-21 16:31:52 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2018-04-21 16:32:48 -0400 |
| commit | e0ada51db907ed2db5d46ad7ff86a8b5df68e59b (patch) | |
| tree | 858966cee69ad8a50e59c4e02dcbde6ba2916151 /arch/x86/entry/syscall_32.c | |
| parent | 0638eb573cde5888c0886c7f35da604e5db209a6 (diff) | |
| parent | 83beed7b2b26f232d782127792dd0cd4362fdc41 (diff) | |
| download | talos-op-linux-e0ada51db907ed2db5d46ad7ff86a8b5df68e59b.tar.gz talos-op-linux-e0ada51db907ed2db5d46ad7ff86a8b5df68e59b.zip | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts were simple overlapping changes in microchip
driver.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/x86/entry/syscall_32.c')
| -rw-r--r-- | arch/x86/entry/syscall_32.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/arch/x86/entry/syscall_32.c b/arch/x86/entry/syscall_32.c index 95c294963612..aa3336a7cb15 100644 --- a/arch/x86/entry/syscall_32.c +++ b/arch/x86/entry/syscall_32.c @@ -7,14 +7,23 @@ #include <asm/asm-offsets.h> #include <asm/syscall.h> -#define __SYSCALL_I386(nr, sym, qual) extern asmlinkage long sym(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) ; +#ifdef CONFIG_IA32_EMULATION +/* On X86_64, we use struct pt_regs * to pass parameters to syscalls */ +#define __SYSCALL_I386(nr, sym, qual) extern asmlinkage long sym(const struct pt_regs *); + +/* this is a lie, but it does not hurt as sys_ni_syscall just returns -EINVAL */ +extern asmlinkage long sys_ni_syscall(const struct pt_regs *); + +#else /* CONFIG_IA32_EMULATION */ +#define __SYSCALL_I386(nr, sym, qual) extern asmlinkage long sym(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long); +extern asmlinkage long sys_ni_syscall(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long); +#endif /* CONFIG_IA32_EMULATION */ + #include <asm/syscalls_32.h> #undef __SYSCALL_I386 #define __SYSCALL_I386(nr, sym, qual) [nr] = sym, -extern asmlinkage long sys_ni_syscall(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long); - __visible const sys_call_ptr_t ia32_sys_call_table[__NR_syscall_compat_max+1] = { /* * Smells like a compiler bug -- it doesn't work |

