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