• Linus Torvalds's avatar
    Merge tag 'objtool-core-2021-10-31' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 43aa0a19
    Linus Torvalds authored
    Pull objtool updates from Thomas Gleixner:
    
     - Improve retpoline code patching by separating it from alternatives
       which reduces memory footprint and allows to do better optimizations
       in the actual runtime patching.
    
     - Add proper retpoline support for x86/BPF
    
     - Address noinstr warnings in x86/kvm, lockdep and paravirtualization
       code
    
     - Add support to handle pv_opsindirect calls in the noinstr analysis
    
     - Classify symbols upfront and cache the result to avoid redundant
       str*cmp() invocations.
    
     - Add a CFI hash to reduce memory consumption which also reduces
       runtime on a allyesconfig by ~50%
    
     - Adjust XEN code to make objtool handling more robust and as a side
       effect to prevent text fragmentation due to placement of the
       hypercall page.
    
    * tag 'objtool-core-2021-10-31' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (41 commits)
      bpf,x86: Respect X86_FEATURE_RETPOLINE*
      bpf,x86: Simplify computing label offsets
      x86,bugs: Unconditionally allow spectre_v2=retpoline,amd
      x86/alternative: Add debug prints to apply_retpolines()
      x86/alternative: Try inline spectre_v2=retpoline,amd
      x86/alternative: Handle Jcc __x86_indirect_thunk_\reg
      x86/alternative: Implement .retpoline_sites support
      x86/retpoline: Create a retpoline thunk array
      x86/retpoline: Move the retpoline thunk declarations to nospec-branch.h
      x86/asm: Fixup odd GEN-for-each-reg.h usage
      x86/asm: Fix register order
      x86/retpoline: Remove unused replacement symbols
      objtool,x86: Replace alternatives with .retpoline_sites
      objtool: Shrink struct instruction
      objtool: Explicitly avoid self modifying code in .altinstr_replacement
      objtool: Classify symbols
      objtool: Support pv_opsindirect calls for noinstr
      x86/xen: Rework the xen_{cpu,irq,mmu}_opsarrays
      x86/xen: Mark xen_force_evtchn_callback() noinstr
      x86/xen: Make irq_disable() noinstr
      ...
    43aa0a19
enlighten_pv.c 34.6 KB