linux/arch/x86/entry/vsyscall/vsyscall_emu_64.S
Peter Zijlstra 15583e514e x86/vsyscall_emu/64: Don't use RET in vsyscall emulation
This is userspace code and doesn't play by the normal kernel rules.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Borislav Petkov <bp@suse.de>
Reviewed-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Borislav Petkov <bp@suse.de>
2022-06-27 10:33:58 +02:00

40 lines
600 B
ArmAsm

/* SPDX-License-Identifier: GPL-2.0-only */
/*
* vsyscall_emu_64.S: Vsyscall emulation page
*
* Copyright (c) 2011 Andy Lutomirski
*/
#include <linux/linkage.h>
#include <asm/irq_vectors.h>
#include <asm/page_types.h>
#include <asm/unistd_64.h>
__PAGE_ALIGNED_DATA
.globl __vsyscall_page
.balign PAGE_SIZE, 0xcc
.type __vsyscall_page, @object
__vsyscall_page:
mov $__NR_gettimeofday, %rax
syscall
ret
int3
.balign 1024, 0xcc
mov $__NR_time, %rax
syscall
ret
int3
.balign 1024, 0xcc
mov $__NR_getcpu, %rax
syscall
ret
int3
.balign 4096, 0xcc
.size __vsyscall_page, 4096