linux/Documentation/x86
Andy Lutomirski 48e08d0fb2 x86, entry: Switch stacks on a paranoid entry from userspace
This causes all non-NMI, non-double-fault kernel entries from
userspace to run on the normal kernel stack.  Double-fault is
exempt to minimize confusion if we double-fault directly from
userspace due to a bad kernel stack.

This is, suprisingly, simpler and shorter than the current code.  It
removes the IMO rather frightening paranoid_userspace path, and it
make sync_regs much simpler.

There is no risk of stack overflow due to this change -- the kernel
stack that we switch to is empty.

This will also enable us to create non-atomic sections within
machine checks from userspace, which will simplify memory failure
handling.  It will also allow the upcoming fsgsbase code to be
simplified, because it doesn't need to worry about usergs when
scheduling in paranoid_exit, as that code no longer exists.

Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: Tony Luck <tony.luck@intel.com>
Acked-by: Borislav Petkov <bp@alien8.de>
Signed-off-by: Andy Lutomirski <luto@amacapital.net>
2015-01-02 10:22:45 -08:00
..
i386 doc: spelling error changes 2014-05-05 15:32:05 +02:00
x86_64 x86, entry: Switch stacks on a paranoid entry from userspace 2015-01-02 10:22:45 -08:00
00-INDEX Documentation/: update 00-INDEX files 2014-02-10 16:01:40 -08:00
boot.txt x86, boot: Correct max ramdisk size name 2014-03-13 15:32:42 -07:00
early-microcode.txt x86, microcode, amd: Early microcode patch loading support for AMD 2013-05-30 20:19:25 -07:00
earlyprintk.txt doc: spelling error changes 2014-05-05 15:32:05 +02:00
entry_64.txt x86, entry: Switch stacks on a paranoid entry from userspace 2015-01-02 10:22:45 -08:00
exception-tables.txt Doc: move Documentation/exception.txt into x86 subdir 2009-07-10 19:10:32 -07:00
intel_mpx.txt x86, mpx: Give MPX a real config option prompt 2014-12-15 15:58:57 +01:00
mtrr.txt documentation: move mtrr.txt to Doc/x86/ subdir 2008-07-28 14:46:49 +02:00
pat.txt x86: PAT: pfnmap documentation update changes 2008-12-19 15:40:31 -08:00
tlb.txt x86/doc: Fix the 'tlb_single_page_flush_ceiling' sysconfig path 2014-08-10 09:09:26 +02:00
usb-legacy-support.txt x86: doc: move x86-generic documentation from Doc/x86/i386 2008-07-22 15:34:38 -04:00
zero-page.txt x86, boot: Define the 2.12 bzImage boot protocol 2013-01-27 15:56:37 -08:00