linux/arch/x86/entry
Joerg Roedel a13644f3a5 x86/entry/64: Add entry code for #VC handler
The #VC handler needs special entry code because:

	1. It runs on an IST stack

	2. It needs to be able to handle nested #VC exceptions

To make this work, the entry code is implemented to pretend it doesn't
use an IST stack. When entered from user-mode or early SYSCALL entry
path it switches to the task stack. If entered from kernel-mode it tries
to switch back to the previous stack in the IRET frame.

The stack found in the IRET frame is validated first, and if it is not
safe to use it for the #VC handler, the code will switch to a
fall-back stack (the #VC2 IST stack). From there, it can cause nested
exceptions again.

Signed-off-by: Joerg Roedel <jroedel@suse.de>
Signed-off-by: Borislav Petkov <bp@suse.de>
Link: https://lkml.kernel.org/r/20200907131613.12703-46-joro@8bytes.org
2020-09-09 11:33:19 +02:00
..
syscalls all arch: remove system call sys_sysctl 2020-08-14 19:56:56 -07:00
vdso xen: branch for v5.9-rc1b 2020-08-14 13:34:37 -07:00
vsyscall y2038: syscall implementation cleanups 2019-12-01 14:00:59 -08:00
calling.h x86/entry/64: Do not use RDPID in paranoid entry to accomodate KVM 2020-08-21 16:15:27 +02:00
common.c x86/entry: Unbreak 32bit fast syscall 2020-09-04 15:50:14 +02:00
entry_32.S xen: branch for v5.9-rc1b 2020-08-14 13:34:37 -07:00
entry_64_compat.S x86/entry/compat: Clear RAX high bits on Xen PV SYSENTER 2020-07-04 19:47:25 +02:00
entry_64.S x86/entry/64: Add entry code for #VC handler 2020-09-09 11:33:19 +02:00
Makefile x86/entry: Actually disable stack protector 2020-07-19 13:07:10 +02:00
syscall_32.c x86/entry: Drop asmlinkage from syscalls 2020-03-21 16:03:25 +01:00
syscall_64.c x86/entry: Drop asmlinkage from syscalls 2020-03-21 16:03:25 +01:00
syscall_x32.c net: remove compat_sys_{get,set}sockopt 2020-07-19 18:16:40 -07:00
thunk_32.S x86/entry: Remove unused THUNKs 2020-08-26 12:41:54 +02:00
thunk_64.S x86/entry: Remove the TRACE_IRQS cruft 2020-06-11 15:15:19 +02:00