x86/vsyscall/64: Drop "native" vsyscalls
authorAndy Lutomirski <luto@kernel.org>
Wed, 7 Mar 2018 19:12:27 +0000 (11:12 -0800)
committerIngo Molnar <mingo@kernel.org>
Thu, 8 Mar 2018 05:48:15 +0000 (06:48 +0100)
commit076ca272a14cea558b1092ec85cea08510283f2a
tree0a64e5c6a05353554b6f0d2100aebd4b7cc070df
parent91c5f0de64a226e0d9c558b26ef7c2655ef31cca
x86/vsyscall/64: Drop "native" vsyscalls

Since Linux v3.2, vsyscalls have been deprecated and slow.  From v3.2
on, Linux had three vsyscall modes: "native", "emulate", and "none".

"emulate" is the default.  All known user programs work correctly in
emulate mode, but vsyscalls turn into page faults and are emulated.
This is very slow.  In "native" mode, the vsyscall page is easily
usable as an exploit gadget, but vsyscalls are a bit faster -- they
turn into normal syscalls.  (This is in contrast to vDSO functions,
which can be much faster than syscalls.)  In "none" mode, there are
no vsyscalls.

For all practical purposes, "native" was really just a chicken bit
in case something went wrong with the emulation.  It's been over six
years, and nothing has gone wrong.  Delete it.

Signed-off-by: Andy Lutomirski <luto@kernel.org>
Acked-by: Kees Cook <keescook@chromium.org>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dominik Brodowski <linux@dominikbrodowski.net>
Cc: Kernel Hardening <kernel-hardening@lists.openwall.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/519fee5268faea09ae550776ce969fa6e88668b0.1520449896.git.luto@kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
arch/x86/Kconfig
arch/x86/entry/vsyscall/vsyscall_64.c
arch/x86/include/asm/pgtable_types.h
tools/testing/selftests/x86/test_vsyscall.c