6a52e4b1cd
AMD only supports "syscall" from 32-bit compat usermode. Intel and Centaur(?) only support "sysenter" from 32-bit compat usermode. Set the X86 feature bits accordingly, and set up the vdso in accordance with those bits. On the offchance we run on in a 64-bit environment which supports neither syscall nor sysenter from 32-bit mode, then fall back to the int $0x80 vdso. Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
22 lines
473 B
ArmAsm
22 lines
473 B
ArmAsm
#include <linux/init.h>
|
|
|
|
__INITDATA
|
|
|
|
.globl vdso32_int80_start, vdso32_int80_end
|
|
vdso32_int80_start:
|
|
.incbin "arch/x86/vdso/vdso32-int80.so"
|
|
vdso32_int80_end:
|
|
|
|
.globl vdso32_syscall_start, vdso32_syscall_end
|
|
vdso32_syscall_start:
|
|
#ifdef CONFIG_COMPAT
|
|
.incbin "arch/x86/vdso/vdso32-syscall.so"
|
|
#endif
|
|
vdso32_syscall_end:
|
|
|
|
.globl vdso32_sysenter_start, vdso32_sysenter_end
|
|
vdso32_sysenter_start:
|
|
.incbin "arch/x86/vdso/vdso32-sysenter.so"
|
|
vdso32_sysenter_end:
|
|
|
|
__FINIT
|