This series is a whole bunch of page fault cleanups, plus a couple
of OOPS diagnostic improvements.  The overall goals are to clean up
handling of the faulting CPL, the USER bit in the error_code, and
the log messages generated by #PF OOPSes.

This series can also be seen as CET preparation.  CET introduces the
WRUSS instruction, which is the very first way for CPL 0 code to
cause a #PF fault with the USER bit set.  Let's get the page fault
code into shape before we start using WRUSS :)

Andy Lutomirski (13):
  x86/fault: Check user_mode(regs) when avoiding an mmap_sem deadlock
  x86/fault: Check user_mode(regs) when validating a stack extension
  x86/cpufeatures, x86/fault: Mark SMAP as disabled when configured out
  x86/fault: Fold smap_violation() into do_user_addr_fault()
  x86/fault: Fix SMAP #PF handling buglet for implicit supervisor
    accesses
  x86/fault: Improve the condition for signalling vs OOPSing
  x86/fault: Make error_code sanitization more robust
  x86/fault: Don't set thread.cr2, etc before OOPSing
  x86/fault: Remove sw_error_code
  x86/fault: Don't try to recover from an implicit supervisor access
  x86/oops: Show the correct CS value in show_regs()
  x86/fault: Decode page fault OOPSes better
  x86/vsyscall/64: Use X86_PF constants in the simulated #PF error code

 arch/x86/entry/vsyscall/vsyscall_64.c    |   2 +-
 arch/x86/include/asm/disabled-features.h |   8 +-
 arch/x86/kernel/process_64.c             |   5 +-
 arch/x86/mm/fault.c                      | 224 ++++++++++++++---------
 4 files changed, 150 insertions(+), 89 deletions(-)

-- 
2.17.2

Reply via email to