summaryrefslogtreecommitdiff
path: root/arch/x86/include/asm/vsyscall.h
diff options
context:
space:
mode:
authorBorislav Petkov <bp@suse.de>2018-01-04 17:42:45 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-01-10 09:29:54 +0100
commitbeca4e2d994464f5a0f629c1ff91b98398725efa (patch)
tree7f6e55a819d6b56128715a93de16a7d67ae3afdd /arch/x86/include/asm/vsyscall.h
parent47f3cea393ab5188d1a1409259e71099314dc530 (diff)
Map the vsyscall page with _PAGE_USER
This needs to happen early in kaiser_pagetable_walk(), before the hierarchy is established so that _PAGE_USER permission can be really set. A proper fix would be to teach kaiser_pagetable_walk() to update those permissions but the vsyscall page is the only exception here so ... Signed-off-by: Borislav Petkov <bp@suse.de> Acked-by: Hugh Dickins <hughd@google.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'arch/x86/include/asm/vsyscall.h')
-rw-r--r--arch/x86/include/asm/vsyscall.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/include/asm/vsyscall.h b/arch/x86/include/asm/vsyscall.h
index 6ba66ee79710..4865e10dbb55 100644
--- a/arch/x86/include/asm/vsyscall.h
+++ b/arch/x86/include/asm/vsyscall.h
@@ -12,12 +12,14 @@ extern void map_vsyscall(void);
* Returns true if handled.
*/
extern bool emulate_vsyscall(struct pt_regs *regs, unsigned long address);
+extern bool vsyscall_enabled(void);
#else
static inline void map_vsyscall(void) {}
static inline bool emulate_vsyscall(struct pt_regs *regs, unsigned long address)
{
return false;
}
+static inline bool vsyscall_enabled(void) { return false; }
#endif
#endif /* _ASM_X86_VSYSCALL_H */