[PATCH v2 00/14] x86/fault: #PF improvements, mostly related to USER bit

From: Andy Lutomirski
Date: Tue Feb 09 2021 - 21:37:27 EST


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 :)

Changes from v1:
- Various changelog improvements.
- Reorder patches (SMAP moved after SMEP)
- Add the efi_recover_from_page_fault() patch
- Tidy up and improve the AMD erratum detection code

Andy Lutomirski (14):
x86/fault: Fix AMD erratum #91 errata fixup for user code
x86/fault: Skip the AMD erratum #91 workaround on unaffected CPUs
x86/fault: Fold mm_fault_error() into do_user_addr_fault()
x86/fault/32: Move is_f00f_bug() to do_kern_addr_fault()
x86/fault: Document the locking in the fault_signal_pending() path
x86/fault: Correct a few user vs kernel checks wrt WRUSS
x86/fault: Improve kernel-executing-user-memory handling
x86/fault: Skip erratum #93 workaround on new CPUs
x86/fault: Split the OOPS code out from no_context()
x86/fault: Bypass no_context() for implicit kernel faults from
usermode
x86/fault: Rename no_context() to kernelmode_fixup_or_oops()
x86/fault: Don't look for extable entries for SMEP violations
x86/fault: Don't run fixups for SMAP violations
x86/fault, x86/efi: Fix and rename efi_recover_from_page_fault()

arch/x86/include/asm/efi.h | 2 +-
arch/x86/mm/fault.c | 380 +++++++++++++++++++--------------
arch/x86/platform/efi/quirks.c | 16 +-
3 files changed, 227 insertions(+), 171 deletions(-)

--
2.29.2