• Linus Torvalds's avatar
    Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 85a2d939
    Linus Torvalds authored
    Pull x86 fixes from Thomas Gleixner:
     "Yet another pile of melted spectrum related changes:
    
       - sanitize the array_index_nospec protection mechanism: Remove the
         overengineered array_index_nospec_mask_check() magic and allow
         const-qualified types as index to avoid temporary storage in a
         non-const local variable.
    
       - make the microcode loader more robust by properly propagating error
         codes. Provide information about new feature bits after micro code
         was updated so administrators can act upon.
    
       - optimizations of the entry ASM code which reduce code footprint and
         make the code simpler and faster.
    
       - fix the {pmd,pud}_{set,clear}_flags() implementations to work
         properly on paravirt kernels by removing the address translation
         operations.
    
       - revert the harmful vmexit_fill_RSB() optimization
    
       - use IBRS around firmware calls
    
       - teach objtool about retpolines and add annotations for indirect
         jumps and calls.
    
       - explicitly disable jumplabel patching in __init code and handle
         patching failures properly instead of silently ignoring them.
    
       - remove indirect paravirt calls for writing the speculation control
         MSR as these calls are obviously proving the same attack vector
         which is tried to be mitigated.
    
       - a few small fixes which address build issues with recent compiler
         and assembler versions"
    
    * 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (38 commits)
      KVM/VMX: Optimize vmx_vcpu_run() and svm_vcpu_run() by marking the RDMSR path as unlikely()
      KVM/x86: Remove indirect MSR op calls from SPEC_CTRL
      objtool, retpolines: Integrate objtool with retpoline support more closely
      x86/entry/64: Simplify ENCODE_FRAME_POINTER
      extable: Make init_kernel_text() global
      jump_label: Warn on failed jump_label patching attempt
      jump_label: Explicitly disable jump labels in __init code
      x86/entry/64: Open-code switch_to_thread_stack()
      x86/entry/64: Move ASM_CLAC to interrupt_entry()
      x86/entry/64: Remove 'interrupt' macro
      x86/entry/64: Move the switch_to_thread_stack() call to interrupt_entry()
      x86/entry/64: Move ENTER_IRQ_STACK from interrupt macro to interrupt_entry
      x86/entry/64: Move PUSH_AND_CLEAR_REGS from interrupt macro to helper function
      x86/speculation: Move firmware_restrict_branch_speculation_*() from C to CPP
      objtool: Add module specific retpoline rules
      objtool: Add retpoline validation
      objtool: Use existing global variables for options
      x86/mm/sme, objtool: Annotate indirect call in sme_encrypt_execute()
      x86/boot, objtool: Annotate indirect jump in secondary_startup_64()
      x86/paravirt, objtool: Annotate indirect calls
      ...
    85a2d939
Kconfig 95.2 KB