Skip to contentSkip to conversation

Linux 5.10.133

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Jul 25, 2022 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.10.133 kernel.

All users of the 5.10 kernel series must upgrade.

The updated 5.10.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.10.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

------------

 Documentation/admin-guide/kernel-parameters.txt  |   25 
 Makefile                                         |   23 
 arch/um/kernel/um_arch.c                         |    8 
 arch/x86/Kconfig                                 |   91 +
 arch/x86/Makefile                                |    8 
 arch/x86/boot/compressed/efi_thunk_64.S          |    2 
 arch/x86/boot/compressed/head_64.S               |    4 
 arch/x86/boot/compressed/mem_encrypt.S           |    4 
 arch/x86/crypto/aegis128-aesni-asm.S             |   48 
 arch/x86/crypto/aes_ctrby8_avx-x86_64.S          |    2 
 arch/x86/crypto/aesni-intel_asm.S                |   52 -
 arch/x86/crypto/aesni-intel_avx-x86_64.S         |   40 
 arch/x86/crypto/blake2s-core.S                   |    4 
 arch/x86/crypto/blowfish-x86_64-asm_64.S         |   12 
 arch/x86/crypto/camellia-aesni-avx-asm_64.S      |   18 
 arch/x86/crypto/camellia-aesni-avx2-asm_64.S     |   18 
 arch/x86/crypto/camellia-x86_64-asm_64.S         |   12 
 arch/x86/crypto/cast5-avx-x86_64-asm_64.S        |   12 
 arch/x86/crypto/cast6-avx-x86_64-asm_64.S        |   16 
 arch/x86/crypto/chacha-avx2-x86_64.S             |    6 
 arch/x86/crypto/chacha-avx512vl-x86_64.S         |    6 
 arch/x86/crypto/chacha-ssse3-x86_64.S            |    8 
 arch/x86/crypto/crc32-pclmul_asm.S               |    2 
 arch/x86/crypto/crc32c-pcl-intel-asm_64.S        |    2 
 arch/x86/crypto/crct10dif-pcl-asm_64.S           |    2 
 arch/x86/crypto/des3_ede-asm_64.S                |    4 
 arch/x86/crypto/ghash-clmulni-intel_asm.S        |    6 
 arch/x86/crypto/nh-avx2-x86_64.S                 |    2 
 arch/x86/crypto/nh-sse2-x86_64.S                 |    2 
 arch/x86/crypto/poly1305-x86_64-cryptogams.pl    |   38 
 arch/x86/crypto/serpent-avx-x86_64-asm_64.S      |   16 
 arch/x86/crypto/serpent-avx2-asm_64.S            |   16 
 arch/x86/crypto/serpent-sse2-i586-asm_32.S       |    6 
 arch/x86/crypto/serpent-sse2-x86_64-asm_64.S     |    6 
 arch/x86/crypto/sha1_avx2_x86_64_asm.S           |    2 
 arch/x86/crypto/sha1_ni_asm.S                    |    2 
 arch/x86/crypto/sha1_ssse3_asm.S                 |    2 
 arch/x86/crypto/sha256-avx-asm.S                 |    2 
 arch/x86/crypto/sha256-avx2-asm.S                |    2 
 arch/x86/crypto/sha256-ssse3-asm.S               |    2 
 arch/x86/crypto/sha256_ni_asm.S                  |    2 
 arch/x86/crypto/sha512-avx-asm.S                 |    2 
 arch/x86/crypto/sha512-avx2-asm.S                |    2 
 arch/x86/crypto/sha512-ssse3-asm.S               |    2 
 arch/x86/crypto/twofish-avx-x86_64-asm_64.S      |   16 
 arch/x86/crypto/twofish-i586-asm_32.S            |    4 
 arch/x86/crypto/twofish-x86_64-asm_64-3way.S     |    6 
 arch/x86/crypto/twofish-x86_64-asm_64.S          |    4 
 arch/x86/entry/Makefile                          |    2 
 arch/x86/entry/calling.h                         |   72 +
 arch/x86/entry/entry.S                           |   22 
 arch/x86/entry/entry_32.S                        |    6 
 arch/x86/entry/entry_64.S                        |   62 +
 arch/x86/entry/entry_64_compat.S                 |   21 
 arch/x86/entry/thunk_32.S                        |    2 
 arch/x86/entry/thunk_64.S                        |    2 
 arch/x86/entry/vdso/Makefile                     |    1 
 arch/x86/entry/vdso/vdso32/system_call.S         |    4 
 arch/x86/entry/vsyscall/vsyscall_emu_64.S        |    3 
 arch/x86/include/asm/GEN-for-each-reg.h          |   14 
 arch/x86/include/asm/alternative-asm.h           |  114 --
 arch/x86/include/asm/alternative.h               |  137 ++
 arch/x86/include/asm/asm-prototypes.h            |   17 
 arch/x86/include/asm/cpufeature.h                |   41 
 arch/x86/include/asm/cpufeatures.h               |   14 
 arch/x86/include/asm/disabled-features.h         |   21 
 arch/x86/include/asm/inat.h                      |    2 
 arch/x86/include/asm/insn-eval.h                 |    4 
 arch/x86/include/asm/insn.h                      |   28 
 arch/x86/include/asm/linkage.h                   |   22 
 arch/x86/include/asm/msr-index.h                 |   13 
 arch/x86/include/asm/nospec-branch.h             |  141 +-
 arch/x86/include/asm/paravirt.h                  |    2 
 arch/x86/include/asm/qspinlock_paravirt.h        |    4 
 arch/x86/include/asm/smap.h                      |    5 
 arch/x86/include/asm/static_call.h               |   19 
 arch/x86/include/asm/unwind_hints.h              |   23 
 arch/x86/kernel/acpi/wakeup_32.S                 |    6 
 arch/x86/kernel/alternative.c                    |  406 +++++++-
 arch/x86/kernel/cpu/amd.c                        |   46 
 arch/x86/kernel/cpu/bugs.c                       |  475 ++++++++-
 arch/x86/kernel/cpu/common.c                     |   61 -
 arch/x86/kernel/cpu/cpu.h                        |    2 
 arch/x86/kernel/cpu/hygon.c                      |    6 
 arch/x86/kernel/cpu/scattered.c                  |    1 
 arch/x86/kernel/ftrace.c                         |    7 
 arch/x86/kernel/ftrace_32.S                      |    6 
 arch/x86/kernel/ftrace_64.S                      |   13 
 arch/x86/kernel/head_32.S                        |    3 
 arch/x86/kernel/head_64.S                        |    5 
 arch/x86/kernel/irqflags.S                       |    4 
 arch/x86/kernel/kprobes/core.c                   |    2 
 arch/x86/kernel/kvm.c                            |    2 
 arch/x86/kernel/module.c                         |   15 
 arch/x86/kernel/paravirt.c                       |    2 
 arch/x86/kernel/process.c                        |    2 
 arch/x86/kernel/relocate_kernel_32.S             |   15 
 arch/x86/kernel/relocate_kernel_64.S             |   13 
 arch/x86/kernel/sev-es.c                         |    2 
 arch/x86/kernel/sev_verify_cbit.S                |    2 
 arch/x86/kernel/static_call.c                    |   52 -
 arch/x86/kernel/umip.c                           |    2 
 arch/x86/kernel/verify_cpu.S                     |    4 
 arch/x86/kernel/vmlinux.lds.S                    |   23 
 arch/x86/kvm/emulate.c                           |   39 
 arch/x86/kvm/svm/vmenter.S                       |   11 
 arch/x86/kvm/vmx/nested.c                        |   32 
 arch/x86/kvm/vmx/run_flags.h                     |    8 
 arch/x86/kvm/vmx/vmenter.S                       |  170 +--
 arch/x86/kvm/vmx/vmx.c                           |   78 +
 arch/x86/kvm/vmx/vmx.h                           |    5 
 arch/x86/kvm/x86.c                               |    4 
 arch/x86/lib/atomic64_386_32.S                   |   88 -
 arch/x86/lib/atomic64_cx8_32.S                   |   18 
 arch/x86/lib/checksum_32.S                       |    8 
 arch/x86/lib/clear_page_64.S                     |    6 
 arch/x86/lib/cmpxchg16b_emu.S                    |    4 
 arch/x86/lib/cmpxchg8b_emu.S                     |    4 
 arch/x86/lib/copy_mc_64.S                        |    6 
 arch/x86/lib/copy_page_64.S                      |    6 
 arch/x86/lib/copy_user_64.S                      |   14 
 arch/x86/lib/csum-copy_64.S                      |    2 
 arch/x86/lib/error-inject.c                      |    3 
 arch/x86/lib/getuser.S                           |   22 
 arch/x86/lib/hweight.S                           |    6 
 arch/x86/lib/inat.c                              |    2 
 arch/x86/lib/insn-eval.c                         |   40 
 arch/x86/lib/insn.c                              |  222 +++-
 arch/x86/lib/iomap_copy_64.S                     |    2 
 arch/x86/lib/memcpy_64.S                         |   14 
 arch/x86/lib/memmove_64.S                        |   11 
 arch/x86/lib/memset_64.S                         |    8 
 arch/x86/lib/msr-reg.S                           |    4 
 arch/x86/lib/putuser.S                           |    6 
 arch/x86/lib/retpoline.S                         |  118 +-
 arch/x86/math-emu/div_Xsig.S                     |    2 
 arch/x86/math-emu/div_small.S                    |    2 
 arch/x86/math-emu/mul_Xsig.S                     |    6 
 arch/x86/math-emu/polynom_Xsig.S                 |    2 
 arch/x86/math-emu/reg_norm.S                     |    6 
 arch/x86/math-emu/reg_round.S                    |    2 
 arch/x86/math-emu/reg_u_add.S                    |    2 
 arch/x86/math-emu/reg_u_div.S                    |    2 
 arch/x86/math-emu/reg_u_mul.S                    |    2 
 arch/x86/math-emu/reg_u_sub.S                    |    2 
 arch/x86/math-emu/round_Xsig.S                   |    4 
 arch/x86/math-emu/shr_Xsig.S                     |    8 
 arch/x86/math-emu/wm_shrx.S                      |   16 
 arch/x86/mm/mem_encrypt_boot.S                   |    6 
 arch/x86/net/bpf_jit_comp.c                      |  185 +--
 arch/x86/net/bpf_jit_comp32.c                    |   22 
 arch/x86/platform/efi/efi_stub_32.S              |    2 
 arch/x86/platform/efi/efi_stub_64.S              |    2 
 arch/x86/platform/efi/efi_thunk_64.S             |    5 
 arch/x86/platform/olpc/xo1-wakeup.S              |    6 
 arch/x86/power/hibernate_asm_32.S                |    4 
 arch/x86/power/hibernate_asm_64.S                |    4 
 arch/x86/um/checksum_32.S                        |    4 
 arch/x86/um/setjmp_32.S                          |    2 
 arch/x86/um/setjmp_64.S                          |    2 
 arch/x86/xen/Makefile                            |    1 
 arch/x86/xen/setup.c                             |    6 
 arch/x86/xen/xen-asm.S                           |   43 
 arch/x86/xen/xen-head.S                          |    6 
 arch/x86/xen/xen-ops.h                           |    6 
 drivers/base/cpu.c                               |    8 
 drivers/idle/intel_idle.c                        |   43 
 include/linux/cpu.h                              |    2 
 include/linux/kvm_host.h                         |    2 
 include/linux/objtool.h                          |   14 
 samples/ftrace/ftrace-direct-modify.c            |    4 
 samples/ftrace/ftrace-direct-too.c               |    2 
 samples/ftrace/ftrace-direct.c                   |    2 
 scripts/Makefile.build                           |    6 
 scripts/link-vmlinux.sh                          |    6 
 security/Kconfig                                 |   11 
 tools/arch/x86/include/asm/cpufeatures.h         |   12 
 tools/arch/x86/include/asm/disabled-features.h   |   21 
 tools/arch/x86/include/asm/inat.h                |    2 
 tools/arch/x86/include/asm/insn.h                |   28 
 tools/arch/x86/include/asm/msr-index.h           |   13 
 tools/arch/x86/lib/inat.c                        |    2 
 tools/arch/x86/lib/insn.c                        |  222 +++-
 tools/arch/x86/lib/memcpy_64.S                   |   14 
 tools/arch/x86/lib/memset_64.S                   |    8 
 tools/include/asm/alternative-asm.h              |   10 
 tools/include/asm/alternative.h                  |   10 
 tools/include/linux/kconfig.h                    |   67 +
 tools/include/linux/objtool.h                    |   14 
 tools/objtool/Documentation/stack-validation.txt |   16 
 tools/objtool/Makefile                           |    4 
 tools/objtool/arch.h                             |   13 
 tools/objtool/arch/x86/decode.c                  |   58 -
 tools/objtool/arch/x86/include/arch_special.h    |    2 
 tools/objtool/builtin-check.c                    |    6 
 tools/objtool/builtin-orc.c                      |    6 
 tools/objtool/builtin.h                          |    3 
 tools/objtool/cfi.h                              |    2 
 tools/objtool/check.c                            | 1140 +++++++++++++++++------
 tools/objtool/check.h                            |   35 
 tools/objtool/elf.c                              |  435 +++++++-
 tools/objtool/elf.h                              |   22 
 tools/objtool/objtool.c                          |    2 
 tools/objtool/objtool.h                          |    5 
 tools/objtool/orc_gen.c                          |  324 +++---
 tools/objtool/special.c                          |   22 
 tools/objtool/sync-check.sh                      |   17 
 tools/objtool/weak.c                             |    7 
 tools/perf/check-headers.sh                      |   15 
 209 files changed, 4611 insertions(+), 1935 deletions(-)

Alexandre Chartre (2):
x86/bugs: Report AMD retbleed vulnerability
x86/bugs: Add AMD retbleed= boot parameter

Andrew Cooper (1):
x86/cpu/amd: Enumerate BTC_NO

Arnaldo Carvalho de Melo (5):
tools arch: Update arch/x86/lib/mem{cpy,set}_64.S copies used in 'perf bench mem memcpy' tools arch x86: Sync the msr-index.h copy with the kernel sources
tools headers cpufeatures: Sync with the kernel sources
tools arch: Update arch/x86/lib/mem{cpy,set}_64.S copies used in 'perf bench mem memcpy' - again tools headers: Remove broken definition of __LITTLE_ENDIAN

Ben Hutchings (3):
x86: Add insn_decode_kernel()
Makefile: Set retpoline cflags based on CONFIG_CC_IS_{CLANG,GCC} x86/xen: Fix initialisation in hypercall_page after rethunk

Borislav Petkov (8):
x86/insn: Rename insn_decode() to insn_decode_from_regs() x86/insn: Add a __ignore_sync_check__ marker
x86/insn: Add an insn_decode() API
x86/insn-eval: Handle return values from the decoder x86/alternative: Use insn_decode()
x86/alternative: Optimize single-byte NOPs at an arbitrary position kvm/emulate: Fix SETcc emulation function offsets with SLS tools/insn: Restore the relative include paths for cross building

Greg Kroah-Hartman (2):
x86, kvm: use proper ASM macros for kvm_vcpu_is_preempted Linux 5.10.133

Jiri Slaby (1):
x86/asm/32: Fix ANNOTATE_UNRET_SAFE use on 32-bit

Joe Lawrence (1):
objtool: Make .altinstructions section entry size consistent

Josh Poimboeuf (24):
objtool: Refactor ORC section generation
objtool: Add 'alt_group' struct
objtool: Support stack layout changes in alternatives
objtool: Support retpoline jump detection for vmlinux.o
objtool: Assume only ELF functions do sibling calls
objtool: Combine UNWIND_HINT_RET_OFFSET and UNWIND_HINT_FUNC x86/xen: Support objtool validation in xen-asm.S
x86/xen: Support objtool vmlinux.o validation in xen-head.S
objtool: Support asm jump tables
objtool: Don't make .altinstructions writable
objtool: Remove reloc symbol type checks in get_alt_entry() x86/bugs: Do IBPB fallback check only once x86/speculation: Fix RSB filling with CONFIG_RETPOLINE=n x86/speculation: Fix firmware entry SPEC_CTRL handling x86/speculation: Fix SPEC_CTRL write on SMT state change x86/speculation: Use cached host SPEC_CTRL value for guest entry/exit x86/speculation: Remove x86_spec_ctrl_mask
objtool: Re-add UNWIND_HINT_{SAVE_RESTORE}
KVM: VMX: Flatten __vmx_vcpu_run()
KVM: VMX: Convert launched argument to flags
KVM: VMX: Prevent guest RSB poisoning attacks with eIBRS
KVM: VMX: Fix IBRS handling after vmexit
x86/speculation: Fill RSB on vmexit for IBRS
x86/ftrace: Add UNWIND_HINT_FUNC annotation for ftrace_stub

Juergen Gross (4):
x86/alternative: Merge include files x86/alternative: Support not-feature x86/alternative: Support ALTERNATIVE_TERNARY x86/alternative: Use ALTERNATIVE_TERNARY() in _static_cpu_has()

Kim Phillips (3):
x86/sev: Avoid using __x86_return_thunk
x86/bugs: Enable STIBP for JMP2RET
x86/bugs: Remove apostrophe typo

Konrad Rzeszutek Wilk (1):
x86/kexec: Disable RET on kexec

Linus Torvalds (2):
objtool: print out the symbol type when complaining about it
kvm: fix objtool relocation warning

Mikulas Patocka (1):
objtool: Fix objtool regression on x32 systems

Nathan Chancellor (1):
x86/speculation: Use DECLARE_PER_CPU for x86_spec_ctrl_current

Paolo Bonzini (1):
KVM: emulate: do not adjust size of fastop and setcc subroutines

Pawan Gupta (3):
x86/speculation: Add spectre_v2=ibrs option to support Kernel IBRS x86/bugs: Add Cannon lake to RETBleed affected CPU list x86/speculation: Disable RRSBA behavior

Peter Zijlstra (77):
x86/alternatives: Optimize optimize_nops()
x86/retpoline: Simplify retpolines
objtool: Correctly handle retpoline thunk calls
objtool: Handle per arch retpoline naming
objtool: Rework the elf_rebuild_reloc_section() logic
objtool: Add elf_create_reloc() helper
objtool: Create reloc sections implicitly
objtool: Extract elf_strtab_concat()
objtool: Extract elf_symbol_add()
objtool: Add elf_create_undef_symbol()
objtool: Keep track of retpoline call sites
objtool: Cache instruction relocs
objtool: Skip magical retpoline .altinstr_replacement
objtool/x86: Rewrite retpoline thunk calls
objtool: Fix .symtab_shndx handling for elf_create_undef_symbol()
objtool: Only rewrite unconditional retpoline thunk calls
objtool/x86: Ignore __x86_indirect_alt_* symbols
objtool: Teach get_alt_entry() about more relocation types
objtool: Introduce CFI hash
objtool: Handle __sanitize_cov*() tail calls
objtool: Classify symbols
objtool: Explicitly avoid self modifying code in .altinstr_replacement objtool,x86: Replace alternatives with .retpoline_sites
x86/retpoline: Remove unused replacement symbols
x86/asm: Fix register order
x86/asm: Fixup odd GEN-for-each-reg.h usage
x86/retpoline: Move the retpoline thunk declarations to nospec-branch.h x86/retpoline: Create a retpoline thunk array
x86/alternative: Implement .retpoline_sites support
x86/alternative: Handle Jcc __x86_indirect_thunk_\reg
x86/alternative: Try inline spectre_v2=retpoline,amd
x86/alternative: Add debug prints to apply_retpolines()
bpf,x86: Simplify computing label offsets
bpf,x86: Respect X86_FEATURE_RETPOLINE*
x86/lib/atomic64_386_32: Rename things
x86: Prepare asm files for straight-line-speculation
x86: Prepare inline-asm for straight-line-speculation
x86/alternative: Relax text_poke_bp() constraint
objtool: Add straight-line-speculation validation
x86: Add straight-line-speculation mitigation
objtool: Default ignore INT3 for unreachable
crypto: x86/poly1305 - Fixup SLS
objtool: Fix SLS validation for kcov tail-call replacement
objtool: Fix code relocs vs weak symbols
objtool: Fix type of reloc::addend
objtool: Fix symbol creation
x86/entry: Remove skip_r11rcx
x86/kvm/vmx: Make noinstr clean
x86/cpufeatures: Move RETPOLINE flags to word 11
x86/retpoline: Cleanup some #ifdefery
x86/retpoline: Swizzle retpoline thunk
x86/retpoline: Use -mfunction-return
x86: Undo return-thunk damage
x86,objtool: Create .return_sites
x86,static_call: Use alternative RET encoding
x86/ftrace: Use alternative RET encoding
x86/bpf: Use alternative RET encoding
x86/kvm: Fix SETcc emulation for return thunks
x86/vsyscall_emu/64: Don't use RET in vsyscall emulation
x86: Use return-thunk in asm code
objtool: Treat .text.__x86.* as noinstr
x86: Add magic AMD return-thunk
x86/bugs: Keep a per-CPU IA32_SPEC_CTRL value
x86/entry: Add kernel IBRS implementation
x86/bugs: Optimize SPEC_CTRL MSR writes
x86/bugs: Split spectre_v2_select_mitigation() and spectre_v2_user_select_mitigation() x86/bugs: Report Intel retbleed vulnerability
intel_idle: Disable IBRS during long idle
objtool: Update Retpoline validation
x86/xen: Rename SYS* entry points
x86/bugs: Add retbleed=ibpb
objtool: Add entry UNRET validation
x86/cpu/amd: Add Spectral Chicken
x86/common: Stamp out the stepping madness
x86/retbleed: Add fine grained Kconfig knobs
um: Add missing apply_returns()
x86: Use -mindirect-branch-cs-prefix for RETPOLINE builds

Thadeu Lima de Souza Cascardo (5):
x86/realmode: build with -D__DISABLE_EXPORTS
objtool: skip non-text sections when adding return-thunk sites x86/bugs: Do not enable IBPB-on-entry when IBPB is not supported efi/x86: use naked RET on mixed mode call wrapper x86/kvm: fix FASTOP_SIZE when return thunks are enabled

Thomas Gleixner (1):
x86/static_call: Serialize __static_call_fixup() properly

Uros Bizjak (2):
KVM/VMX: Use TEST %REG,%REG instead of CMP $0,%REG in vmenter.S KVM/nVMX: Use __vmx_vcpu_run in nested_vmx_check_vmentry_hw

Vasily Gorbik (1):
objtool: Fix elf_create_undef_symbol() endianness

author maintainer
#1 lore raw
Documentation/admin-guide/kernel-parameters.txt +25 -0
index ea8b704be705..1a58c580b236 100644
@@ -4656,6 +4656,30 @@
 
 	retain_initrd	[RAM] Keep initrd memory after extraction
 
+	retbleed=	[X86] Control mitigation of RETBleed (Arbitrary
+			Speculative Code Execution with Return Instructions)
+			vulnerability.
+
+			off          - no mitigation
+			auto         - automatically select a migitation
+			auto,nosmt   - automatically select a mitigation,
+				       disabling SMT if necessary for
+				       the full mitigation (only on Zen1
+				       and older without STIBP).
+			ibpb	     - mitigate short speculation windows on
+				       basic block boundaries too. Safe, highest
+				       perf impact.
+			unret        - force enable untrained return thunks,
+				       only effective on AMD f15h-f17h
+				       based systems.
+			unret,nosmt  - like unret, will disable SMT when STIBP
+			               is not available.
+
+			Selecting 'auto' will choose a mitigation method at run
+			time according to the CPU.
+
+			Not specifying this option is equivalent to retbleed=auto.
+
 	rfkill.default_state=
 		0	"airplane mode".  All wifi, bluetooth, wimax, gps, fm,
 			etc. communication is blocked by default.
@@ -5005,6 +5029,7 @@
 			eibrs		  - enhanced IBRS
 			eibrs,retpoline   - enhanced IBRS + Retpolines
 			eibrs,lfence      - enhanced IBRS + LFENCE
+			ibrs		  - use IBRS to protect kernel
 
 			Not specifying this option is equivalent to
 			spectre_v2=auto.
Makefile +16 -7
index 5bee8f281b06..fbd330e58c3b 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 10
-SUBLEVEL = 132
+SUBLEVEL = 133
 EXTRAVERSION =
 NAME = Dare mighty things
 
@@ -670,12 +670,21 @@ ifdef CONFIG_FUNCTION_TRACER
   CC_FLAGS_FTRACE := -pg
 endif
 
-RETPOLINE_CFLAGS_GCC := -mindirect-branch=thunk-extern -mindirect-branch-register
-RETPOLINE_VDSO_CFLAGS_GCC := -mindirect-branch=thunk-inline -mindirect-branch-register
-RETPOLINE_CFLAGS_CLANG := -mretpoline-external-thunk
-RETPOLINE_VDSO_CFLAGS_CLANG := -mretpoline
-RETPOLINE_CFLAGS := $(call cc-option,$(RETPOLINE_CFLAGS_GCC),$(call cc-option,$(RETPOLINE_CFLAGS_CLANG)))
-RETPOLINE_VDSO_CFLAGS := $(call cc-option,$(RETPOLINE_VDSO_CFLAGS_GCC),$(call cc-option,$(RETPOLINE_VDSO_CFLAGS_CLANG)))
+ifdef CONFIG_CC_IS_GCC
+RETPOLINE_CFLAGS	:= $(call cc-option,-mindirect-branch=thunk-extern -mindirect-branch-register)
+RETPOLINE_CFLAGS	+= $(call cc-option,-mindirect-branch-cs-prefix)
+RETPOLINE_VDSO_CFLAGS	:= $(call cc-option,-mindirect-branch=thunk-inline -mindirect-branch-register)
+endif
+ifdef CONFIG_CC_IS_CLANG
+RETPOLINE_CFLAGS	:= -mretpoline-external-thunk
+RETPOLINE_VDSO_CFLAGS	:= -mretpoline
+endif
+
+ifdef CONFIG_RETHUNK
+RETHUNK_CFLAGS         := -mfunction-return=thunk-extern
+RETPOLINE_CFLAGS       += $(RETHUNK_CFLAGS)
+endif
+
 export RETPOLINE_CFLAGS
 export RETPOLINE_VDSO_CFLAGS
 
arch/um/kernel/um_arch.c +8 -0
index 76b37297b7d4..26af24b5d900 100644
@@ -358,6 +358,14 @@ void __init check_bugs(void)
 	os_check_bugs();
 }
 
+void apply_retpolines(s32 *start, s32 *end)
+{
+}
+
+void apply_returns(s32 *start, s32 *end)
+{
+}
+
 void apply_alternatives(struct alt_instr *start, struct alt_instr *end)
 {
 }
arch/x86/Kconfig +82 -9

103 lines not on this page · raw message

arch/x86/Makefile +6 -2
index 8ed757d06f77..1f796050c6dd 100644
@@ -31,7 +31,7 @@ endif
 CODE16GCC_CFLAGS := -m32 -Wa,$(srctree)/arch/x86/boot/code16gcc.h
 M16_CFLAGS	 := $(call cc-option, -m16, $(CODE16GCC_CFLAGS))
 
-REALMODE_CFLAGS	:= $(M16_CFLAGS) -g -Os -DDISABLE_BRANCH_PROFILING \
+REALMODE_CFLAGS	:= $(M16_CFLAGS) -g -Os -DDISABLE_BRANCH_PROFILING -D__DISABLE_EXPORTS \
 		   -Wall -Wstrict-prototypes -march=i386 -mregparm=3 \
 		   -fno-strict-aliasing -fomit-frame-pointer -fno-pic \
 		   -mno-mmx -mno-sse $(call cc-option,-fcf-protection=none)
@@ -196,7 +196,11 @@ ifdef CONFIG_RETPOLINE
   endif
 endif
 
-KBUILD_LDFLAGS := -m elf_$(UTS_MACHINE)
+ifdef CONFIG_SLS
+  KBUILD_CFLAGS += -mharden-sls=all
+endif
+
+KBUILD_LDFLAGS += -m elf_$(UTS_MACHINE)
 
 ifdef CONFIG_X86_NEED_RELOCS
 LDFLAGS_vmlinux := --emit-relocs --discard-none
arch/x86/boot/compressed/efi_thunk_64.S +1 -1
index c4bb0f9363f5..c8052a141b08 100644
@@ -89,7 +89,7 @@ SYM_FUNC_START(__efi64_thunk)
 
 	pop	%rbx
 	pop	%rbp
-	ret
+	RET
 SYM_FUNC_END(__efi64_thunk)
 
 	.code32
arch/x86/boot/compressed/head_64.S +2 -2
index 72f655c238cf..b55e2007b30c 100644
@@ -786,7 +786,7 @@ SYM_FUNC_START(efi32_pe_entry)
 2:	popl	%edi				// restore callee-save registers
 	popl	%ebx
 	leave
-	ret
+	RET
 SYM_FUNC_END(efi32_pe_entry)
 
 	.section ".rodata"
@@ -868,7 +868,7 @@ SYM_FUNC_START(startup32_check_sev_cbit)
 	popl	%ebx
 	popl	%eax
 #endif
-	ret
+	RET
 SYM_FUNC_END(startup32_check_sev_cbit)
 
 /*
arch/x86/boot/compressed/mem_encrypt.S +2 -2
index a6dea4e8a082..484a9c06f41d 100644
@@ -58,7 +58,7 @@ SYM_FUNC_START(get_sev_encryption_bit)
 
 #endif	/* CONFIG_AMD_MEM_ENCRYPT */
 
-	ret
+	RET
 SYM_FUNC_END(get_sev_encryption_bit)
 
 	.code64
@@ -99,7 +99,7 @@ SYM_FUNC_START(set_sev_encryption_mask)
 #endif
 
 	xor	%rax, %rax
-	ret
+	RET
 SYM_FUNC_END(set_sev_encryption_mask)
 
 	.data
arch/x86/crypto/aegis128-aesni-asm.S +24 -24

181 lines not on this page · raw message

arch/x86/crypto/aes_ctrby8_avx-x86_64.S +1 -1
index 3f0fc7dd87d7..c799838242a6 100644
@@ -525,7 +525,7 @@ ddq_add_8:
 	/* return updated IV */
 	vpshufb	xbyteswap, xcounter, xcounter
 	vmovdqu	xcounter, (p_iv)
-	ret
+	RET
 .endm
 
 /*
arch/x86/crypto/aesni-intel_asm.S +26 -26

208 lines not on this page · raw message

arch/x86/crypto/aesni-intel_avx-x86_64.S +20 -20
index 2cf8e94d986a..4d9b2f887064 100644
@@ -1777,7 +1777,7 @@ SYM_FUNC_START(aesni_gcm_init_avx_gen2)
         FUNC_SAVE
         INIT GHASH_MUL_AVX, PRECOMPUTE_AVX
         FUNC_RESTORE
-        ret
+        RET
 SYM_FUNC_END(aesni_gcm_init_avx_gen2)
 
 ###############################################################################
@@ -1798,15 +1798,15 @@ SYM_FUNC_START(aesni_gcm_enc_update_avx_gen2)
         # must be 192
         GCM_ENC_DEC INITIAL_BLOCKS_AVX, GHASH_8_ENCRYPT_8_PARALLEL_AVX, GHASH_LAST_8_AVX, GHASH_MUL_AVX, ENC, 11
         FUNC_RESTORE
-        ret
+        RET
 key_128_enc_update:
         GCM_ENC_DEC INITIAL_BLOCKS_AVX, GHASH_8_ENCRYPT_8_PARALLEL_AVX, GHASH_LAST_8_AVX, GHASH_MUL_AVX, ENC, 9
         FUNC_RESTORE
-        ret
+        RET
 key_256_enc_update:
         GCM_ENC_DEC INITIAL_BLOCKS_AVX, GHASH_8_ENCRYPT_8_PARALLEL_AVX, GHASH_LAST_8_AVX, GHASH_MUL_AVX, ENC, 13
         FUNC_RESTORE
-        ret
+        RET
 SYM_FUNC_END(aesni_gcm_enc_update_avx_gen2)
 
 ###############################################################################
@@ -1827,15 +1827,15 @@ SYM_FUNC_START(aesni_gcm_dec_update_avx_gen2)
         # must be 192
         GCM_ENC_DEC INITIAL_BLOCKS_AVX, GHASH_8_ENCRYPT_8_PARALLEL_AVX, GHASH_LAST_8_AVX, GHASH_MUL_AVX, DEC, 11
         FUNC_RESTORE
-        ret
+        RET
 key_128_dec_update:
         GCM_ENC_DEC INITIAL_BLOCKS_AVX, GHASH_8_ENCRYPT_8_PARALLEL_AVX, GHASH_LAST_8_AVX, GHASH_MUL_AVX, DEC, 9
         FUNC_RESTORE
-        ret
+        RET
 key_256_dec_update:
         GCM_ENC_DEC INITIAL_BLOCKS_AVX, GHASH_8_ENCRYPT_8_PARALLEL_AVX, GHASH_LAST_8_AVX, GHASH_MUL_AVX, DEC, 13
         FUNC_RESTORE
-        ret
+        RET
 SYM_FUNC_END(aesni_gcm_dec_update_avx_gen2)
 
 ###############################################################################
@@ -1856,15 +1856,15 @@ SYM_FUNC_START(aesni_gcm_finalize_avx_gen2)
         # must be 192
         GCM_COMPLETE GHASH_MUL_AVX, 11, arg3, arg4
         FUNC_RESTORE
-        ret
+        RET
 key_128_finalize:
         GCM_COMPLETE GHASH_MUL_AVX, 9, arg3, arg4
         FUNC_RESTORE
-        ret
+        RET
 key_256_finalize:
         GCM_COMPLETE GHASH_MUL_AVX, 13, arg3, arg4
         FUNC_RESTORE
-        ret
+        RET
 SYM_FUNC_END(aesni_gcm_finalize_avx_gen2)
 
 ###############################################################################
@@ -2745,7 +2745,7 @@ SYM_FUNC_START(aesni_gcm_init_avx_gen4)
         FUNC_SAVE
         INIT GHASH_MUL_AVX2, PRECOMPUTE_AVX2
         FUNC_RESTORE
-        ret
+        RET
 SYM_FUNC_END(aesni_gcm_init_avx_gen4)
 
 ###############################################################################
@@ -2766,15 +2766,15 @@ SYM_FUNC_START(aesni_gcm_enc_update_avx_gen4)
         # must be 192
         GCM_ENC_DEC INITIAL_BLOCKS_AVX2, GHASH_8_ENCRYPT_8_PARALLEL_AVX2, GHASH_LAST_8_AVX2, GHASH_MUL_AVX2, ENC, 11
         FUNC_RESTORE
-	ret
+	RET
 key_128_enc_update4:
         GCM_ENC_DEC INITIAL_BLOCKS_AVX2, GHASH_8_ENCRYPT_8_PARALLEL_AVX2, GHASH_LAST_8_AVX2, GHASH_MUL_AVX2, ENC, 9
         FUNC_RESTORE
-	ret
+	RET
 key_256_enc_update4:
         GCM_ENC_DEC INITIAL_BLOCKS_AVX2, GHASH_8_ENCRYPT_8_PARALLEL_AVX2, GHASH_LAST_8_AVX2, GHASH_MUL_AVX2, ENC, 13
         FUNC_RESTORE
-	ret
+	RET
 SYM_FUNC_END(aesni_gcm_enc_update_avx_gen4)
 
 ###############################################################################
@@ -2795,15 +2795,15 @@ SYM_FUNC_START(aesni_gcm_dec_update_avx_gen4)
         # must be 192
         GCM_ENC_DEC INITIAL_BLOCKS_AVX2, GHASH_8_ENCRYPT_8_PARALLEL_AVX2, GHASH_LAST_8_AVX2, GHASH_MUL_AVX2, DEC, 11
         FUNC_RESTORE
-        ret
+        RET
 key_128_dec_update4:
         GCM_ENC_DEC INITIAL_BLOCKS_AVX2, GHASH_8_ENCRYPT_8_PARALLEL_AVX2, GHASH_LAST_8_AVX2, GHASH_MUL_AVX2, DEC, 9
         FUNC_RESTORE
-        ret
+        RET
 key_256_dec_update4:
         GCM_ENC_DEC INITIAL_BLOCKS_AVX2, GHASH_8_ENCRYPT_8_PARALLEL_AVX2, GHASH_LAST_8_AVX2, GHASH_MUL_AVX2, DEC, 13
         FUNC_RESTORE
-        ret
+        RET
 SYM_FUNC_END(aesni_gcm_dec_update_avx_gen4)
 
 ###############################################################################
@@ -2824,13 +2824,13 @@ SYM_FUNC_START(aesni_gcm_finalize_avx_gen4)
         # must be 192
         GCM_COMPLETE GHASH_MUL_AVX2, 11, arg3, arg4
         FUNC_RESTORE
-        ret
+        RET
 key_128_finalize4:
         GCM_COMPLETE GHASH_MUL_AVX2, 9, arg3, arg4
         FUNC_RESTORE
-        ret
+        RET
 key_256_finalize4:
         GCM_COMPLETE GHASH_MUL_AVX2, 13, arg3, arg4
         FUNC_RESTORE
-        ret
+        RET
 SYM_FUNC_END(aesni_gcm_finalize_avx_gen4)
arch/x86/crypto/blake2s-core.S +2 -2
index 2ca79974f819..b50b35ff1fdb 100644
@@ -171,7 +171,7 @@ SYM_FUNC_START(blake2s_compress_ssse3)
 	movdqu		%xmm1,0x10(%rdi)
 	movdqu		%xmm14,0x20(%rdi)
 .Lendofloop:
-	ret
+	RET
 SYM_FUNC_END(blake2s_compress_ssse3)
 
 #ifdef CONFIG_AS_AVX512
@@ -251,6 +251,6 @@ SYM_FUNC_START(blake2s_compress_avx512)
 	vmovdqu		%xmm1,0x10(%rdi)
 	vmovdqu		%xmm4,0x20(%rdi)
 	vzeroupper
-	retq
+	RET
 SYM_FUNC_END(blake2s_compress_avx512)
 #endif /* CONFIG_AS_AVX512 */
arch/x86/crypto/blowfish-x86_64-asm_64.S +6 -6
index 4222ac6d6584..802d71582689 100644
@@ -135,10 +135,10 @@ SYM_FUNC_START(__blowfish_enc_blk)
 	jnz .L__enc_xor;
 
 	write_block();
-	ret;
+	RET;
 .L__enc_xor:
 	xor_block();
-	ret;
+	RET;
 SYM_FUNC_END(__blowfish_enc_blk)
 
 SYM_FUNC_START(blowfish_dec_blk)
@@ -170,7 +170,7 @@ SYM_FUNC_START(blowfish_dec_blk)
 
 	movq %r11, %r12;
 
-	ret;
+	RET;
 SYM_FUNC_END(blowfish_dec_blk)
 
 /**********************************************************************
@@ -322,14 +322,14 @@ SYM_FUNC_START(__blowfish_enc_blk_4way)
 
 	popq %rbx;
 	popq %r12;
-	ret;
+	RET;
 
 .L__enc_xor4:
 	xor_block4();
 
 	popq %rbx;
 	popq %r12;
-	ret;
+	RET;
 SYM_FUNC_END(__blowfish_enc_blk_4way)
 
 SYM_FUNC_START(blowfish_dec_blk_4way)
@@ -364,5 +364,5 @@ SYM_FUNC_START(blowfish_dec_blk_4way)
 	popq %rbx;
 	popq %r12;
 
-	ret;
+	RET;
 SYM_FUNC_END(blowfish_dec_blk_4way)
arch/x86/crypto/camellia-aesni-avx-asm_64.S +9 -9
index ecc0a9a905c4..297b1a7ed2bc 100644
@@ -193,7 +193,7 @@ SYM_FUNC_START_LOCAL(roundsm16_x0_x1_x2_x3_x4_x5_x6_x7_y0_y1_y2_y3_y4_y5_y6_y7_c
 	roundsm16(%xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7,
 		  %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14, %xmm15,
 		  %rcx, (%r9));
-	ret;
+	RET;
 SYM_FUNC_END(roundsm16_x0_x1_x2_x3_x4_x5_x6_x7_y0_y1_y2_y3_y4_y5_y6_y7_cd)
 
 .align 8
@@ -201,7 +201,7 @@ SYM_FUNC_START_LOCAL(roundsm16_x4_x5_x6_x7_x0_x1_x2_x3_y4_y5_y6_y7_y0_y1_y2_y3_a
 	roundsm16(%xmm4, %xmm5, %xmm6, %xmm7, %xmm0, %xmm1, %xmm2, %xmm3,
 		  %xmm12, %xmm13, %xmm14, %xmm15, %xmm8, %xmm9, %xmm10, %xmm11,
 		  %rax, (%r9));
-	ret;
+	RET;
 SYM_FUNC_END(roundsm16_x4_x5_x6_x7_x0_x1_x2_x3_y4_y5_y6_y7_y0_y1_y2_y3_ab)
 
 /*
@@ -787,7 +787,7 @@ SYM_FUNC_START_LOCAL(__camellia_enc_blk16)
 		    %xmm15, (key_table)(CTX, %r8, 8), (%rax), 1 * 16(%rax));
 
 	FRAME_END
-	ret;
+	RET;
 
 .align 8
 .Lenc_max32:
@@ -874,7 +874,7 @@ SYM_FUNC_START_LOCAL(__camellia_dec_blk16)
 		    %xmm15, (key_table)(CTX), (%rax), 1 * 16(%rax));
 
 	FRAME_END
-	ret;
+	RET;
 
 .align 8
 .Ldec_max32:
@@ -915,7 +915,7 @@ SYM_FUNC_START(camellia_ecb_enc_16way)
 		     %xmm8, %rsi);
 
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(camellia_ecb_enc_16way)
 
 SYM_FUNC_START(camellia_ecb_dec_16way)
@@ -945,7 +945,7 @@ SYM_FUNC_START(camellia_ecb_dec_16way)
 		     %xmm8, %rsi);
 
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(camellia_ecb_dec_16way)
 
 SYM_FUNC_START(camellia_cbc_dec_16way)
@@ -996,7 +996,7 @@ SYM_FUNC_START(camellia_cbc_dec_16way)
 		     %xmm8, %rsi);
 
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(camellia_cbc_dec_16way)
 
 #define inc_le128(x, minus_one, tmp) \
@@ -1109,7 +1109,7 @@ SYM_FUNC_START(camellia_ctr_16way)
 		     %xmm8, %rsi);
 
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(camellia_ctr_16way)
 
 #define gf128mul_x_ble(iv, mask, tmp) \
@@ -1253,7 +1253,7 @@ SYM_FUNC_START_LOCAL(camellia_xts_crypt_16way)
 		     %xmm8, %rsi);
 
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(camellia_xts_crypt_16way)
 
 SYM_FUNC_START(camellia_xts_enc_16way)
arch/x86/crypto/camellia-aesni-avx2-asm_64.S +9 -9
index 0907243c501c..288cd246da20 100644
@@ -227,7 +227,7 @@ SYM_FUNC_START_LOCAL(roundsm32_x0_x1_x2_x3_x4_x5_x6_x7_y0_y1_y2_y3_y4_y5_y6_y7_c
 	roundsm32(%ymm0, %ymm1, %ymm2, %ymm3, %ymm4, %ymm5, %ymm6, %ymm7,
 		  %ymm8, %ymm9, %ymm10, %ymm11, %ymm12, %ymm13, %ymm14, %ymm15,
 		  %rcx, (%r9));
-	ret;
+	RET;
 SYM_FUNC_END(roundsm32_x0_x1_x2_x3_x4_x5_x6_x7_y0_y1_y2_y3_y4_y5_y6_y7_cd)
 
 .align 8
@@ -235,7 +235,7 @@ SYM_FUNC_START_LOCAL(roundsm32_x4_x5_x6_x7_x0_x1_x2_x3_y4_y5_y6_y7_y0_y1_y2_y3_a
 	roundsm32(%ymm4, %ymm5, %ymm6, %ymm7, %ymm0, %ymm1, %ymm2, %ymm3,
 		  %ymm12, %ymm13, %ymm14, %ymm15, %ymm8, %ymm9, %ymm10, %ymm11,
 		  %rax, (%r9));
-	ret;
+	RET;
 SYM_FUNC_END(roundsm32_x4_x5_x6_x7_x0_x1_x2_x3_y4_y5_y6_y7_y0_y1_y2_y3_ab)
 
 /*
@@ -825,7 +825,7 @@ SYM_FUNC_START_LOCAL(__camellia_enc_blk32)
 		    %ymm15, (key_table)(CTX, %r8, 8), (%rax), 1 * 32(%rax));
 
 	FRAME_END
-	ret;
+	RET;
 
 .align 8
 .Lenc_max32:
@@ -912,7 +912,7 @@ SYM_FUNC_START_LOCAL(__camellia_dec_blk32)
 		    %ymm15, (key_table)(CTX), (%rax), 1 * 32(%rax));
 
 	FRAME_END
-	ret;
+	RET;
 
 .align 8
 .Ldec_max32:
@@ -957,7 +957,7 @@ SYM_FUNC_START(camellia_ecb_enc_32way)
 	vzeroupper;
 
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(camellia_ecb_enc_32way)
 
 SYM_FUNC_START(camellia_ecb_dec_32way)
@@ -991,7 +991,7 @@ SYM_FUNC_START(camellia_ecb_dec_32way)
 	vzeroupper;
 
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(camellia_ecb_dec_32way)
 
 SYM_FUNC_START(camellia_cbc_dec_32way)
@@ -1059,7 +1059,7 @@ SYM_FUNC_START(camellia_cbc_dec_32way)
 	vzeroupper;
 
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(camellia_cbc_dec_32way)
 
 #define inc_le128(x, minus_one, tmp) \
@@ -1199,7 +1199,7 @@ SYM_FUNC_START(camellia_ctr_32way)
 	vzeroupper;
 
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(camellia_ctr_32way)
 
 #define gf128mul_x_ble(iv, mask, tmp) \
@@ -1366,7 +1366,7 @@ SYM_FUNC_START_LOCAL(camellia_xts_crypt_32way)
 	vzeroupper;
 
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(camellia_xts_crypt_32way)
 
 SYM_FUNC_START(camellia_xts_enc_32way)
arch/x86/crypto/camellia-x86_64-asm_64.S +6 -6
index 1372e6408850..347c059f5940 100644
@@ -213,13 +213,13 @@ SYM_FUNC_START(__camellia_enc_blk)
 	enc_outunpack(mov, RT1);
 
 	movq RR12, %r12;
-	ret;
+	RET;
 
 .L__enc_xor:
 	enc_outunpack(xor, RT1);
 
 	movq RR12, %r12;
-	ret;
+	RET;
 SYM_FUNC_END(__camellia_enc_blk)
 
 SYM_FUNC_START(camellia_dec_blk)
@@ -257,7 +257,7 @@ SYM_FUNC_START(camellia_dec_blk)
 	dec_outunpack();
 
 	movq RR12, %r12;
-	ret;
+	RET;
 SYM_FUNC_END(camellia_dec_blk)
 
 /**********************************************************************
@@ -448,14 +448,14 @@ SYM_FUNC_START(__camellia_enc_blk_2way)
 
 	movq RR12, %r12;
 	popq %rbx;
-	ret;
+	RET;
 
 .L__enc2_xor:
 	enc_outunpack2(xor, RT2);
 
 	movq RR12, %r12;
 	popq %rbx;
-	ret;
+	RET;
 SYM_FUNC_END(__camellia_enc_blk_2way)
 
 SYM_FUNC_START(camellia_dec_blk_2way)
@@ -495,5 +495,5 @@ SYM_FUNC_START(camellia_dec_blk_2way)
 
 	movq RR12, %r12;
 	movq RXOR, %rbx;
-	ret;
+	RET;
 SYM_FUNC_END(camellia_dec_blk_2way)
arch/x86/crypto/cast5-avx-x86_64-asm_64.S +6 -6
index 8a6181b08b59..b258af420c92 100644
@@ -279,7 +279,7 @@ SYM_FUNC_START_LOCAL(__cast5_enc_blk16)
 	outunpack_blocks(RR3, RL3, RTMP, RX, RKM);
 	outunpack_blocks(RR4, RL4, RTMP, RX, RKM);
 
-	ret;
+	RET;
 SYM_FUNC_END(__cast5_enc_blk16)
 
 .align 16
@@ -352,7 +352,7 @@ SYM_FUNC_START_LOCAL(__cast5_dec_blk16)
 	outunpack_blocks(RR3, RL3, RTMP, RX, RKM);
 	outunpack_blocks(RR4, RL4, RTMP, RX, RKM);
 
-	ret;
+	RET;
 
 .L__skip_dec:
 	vpsrldq $4, RKR, RKR;
@@ -393,7 +393,7 @@ SYM_FUNC_START(cast5_ecb_enc_16way)
 
 	popq %r15;
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(cast5_ecb_enc_16way)
 
 SYM_FUNC_START(cast5_ecb_dec_16way)
@@ -431,7 +431,7 @@ SYM_FUNC_START(cast5_ecb_dec_16way)
 
 	popq %r15;
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(cast5_ecb_dec_16way)
 
 SYM_FUNC_START(cast5_cbc_dec_16way)
@@ -483,7 +483,7 @@ SYM_FUNC_START(cast5_cbc_dec_16way)
 	popq %r15;
 	popq %r12;
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(cast5_cbc_dec_16way)
 
 SYM_FUNC_START(cast5_ctr_16way)
@@ -559,5 +559,5 @@ SYM_FUNC_START(cast5_ctr_16way)
 	popq %r15;
 	popq %r12;
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(cast5_ctr_16way)
arch/x86/crypto/cast6-avx-x86_64-asm_64.S +8 -8
index 932a3ce32a88..6eccaf1fb4c6 100644
@@ -291,7 +291,7 @@ SYM_FUNC_START_LOCAL(__cast6_enc_blk8)
 	outunpack_blocks(RA1, RB1, RC1, RD1, RTMP, RX, RKRF, RKM);
 	outunpack_blocks(RA2, RB2, RC2, RD2, RTMP, RX, RKRF, RKM);
 
-	ret;
+	RET;
 SYM_FUNC_END(__cast6_enc_blk8)
 
 .align 8
@@ -338,7 +338,7 @@ SYM_FUNC_START_LOCAL(__cast6_dec_blk8)
 	outunpack_blocks(RA1, RB1, RC1, RD1, RTMP, RX, RKRF, RKM);
 	outunpack_blocks(RA2, RB2, RC2, RD2, RTMP, RX, RKRF, RKM);
 
-	ret;
+	RET;
 SYM_FUNC_END(__cast6_dec_blk8)
 
 SYM_FUNC_START(cast6_ecb_enc_8way)
@@ -361,7 +361,7 @@ SYM_FUNC_START(cast6_ecb_enc_8way)
 
 	popq %r15;
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(cast6_ecb_enc_8way)
 
 SYM_FUNC_START(cast6_ecb_dec_8way)
@@ -384,7 +384,7 @@ SYM_FUNC_START(cast6_ecb_dec_8way)
 
 	popq %r15;
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(cast6_ecb_dec_8way)
 
 SYM_FUNC_START(cast6_cbc_dec_8way)
@@ -410,7 +410,7 @@ SYM_FUNC_START(cast6_cbc_dec_8way)
 	popq %r15;
 	popq %r12;
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(cast6_cbc_dec_8way)
 
 SYM_FUNC_START(cast6_ctr_8way)
@@ -438,7 +438,7 @@ SYM_FUNC_START(cast6_ctr_8way)
 	popq %r15;
 	popq %r12;
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(cast6_ctr_8way)
 
 SYM_FUNC_START(cast6_xts_enc_8way)
@@ -465,7 +465,7 @@ SYM_FUNC_START(cast6_xts_enc_8way)
 
 	popq %r15;
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(cast6_xts_enc_8way)
 
 SYM_FUNC_START(cast6_xts_dec_8way)
@@ -492,5 +492,5 @@ SYM_FUNC_START(cast6_xts_dec_8way)
 
 	popq %r15;
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(cast6_xts_dec_8way)
arch/x86/crypto/chacha-avx2-x86_64.S +3 -3
index ee9a40ab4109..f3d8fc018249 100644
@@ -193,7 +193,7 @@ SYM_FUNC_START(chacha_2block_xor_avx2)
 
 .Ldone2:
 	vzeroupper
-	ret
+	RET
 
 .Lxorpart2:
 	# xor remaining bytes from partial register into output
@@ -498,7 +498,7 @@ SYM_FUNC_START(chacha_4block_xor_avx2)
 
 .Ldone4:
 	vzeroupper
-	ret
+	RET
 
 .Lxorpart4:
 	# xor remaining bytes from partial register into output
@@ -992,7 +992,7 @@ SYM_FUNC_START(chacha_8block_xor_avx2)
 .Ldone8:
 	vzeroupper
 	lea		-8(%r10),%rsp
-	ret
+	RET
 
 .Lxorpart8:
 	# xor remaining bytes from partial register into output
arch/x86/crypto/chacha-avx512vl-x86_64.S +3 -3
index 8713c16c2501..259383e1ad44 100644
@@ -166,7 +166,7 @@ SYM_FUNC_START(chacha_2block_xor_avx512vl)
 
 .Ldone2:
 	vzeroupper
-	ret
+	RET
 
 .Lxorpart2:
 	# xor remaining bytes from partial register into output
@@ -432,7 +432,7 @@ SYM_FUNC_START(chacha_4block_xor_avx512vl)
 
 .Ldone4:
 	vzeroupper
-	ret
+	RET
 
 .Lxorpart4:
 	# xor remaining bytes from partial register into output
@@ -812,7 +812,7 @@ SYM_FUNC_START(chacha_8block_xor_avx512vl)
 
 .Ldone8:
 	vzeroupper
-	ret
+	RET
 
 .Lxorpart8:
 	# xor remaining bytes from partial register into output
arch/x86/crypto/chacha-ssse3-x86_64.S +4 -4
index ca1788bfee16..7111949cd5b9 100644
@@ -108,7 +108,7 @@ SYM_FUNC_START_LOCAL(chacha_permute)
 	sub		$2,%r8d
 	jnz		.Ldoubleround
 
-	ret
+	RET
 SYM_FUNC_END(chacha_permute)
 
 SYM_FUNC_START(chacha_block_xor_ssse3)
@@ -166,7 +166,7 @@ SYM_FUNC_START(chacha_block_xor_ssse3)
 
 .Ldone:
 	FRAME_END
-	ret
+	RET
 
 .Lxorpart:
 	# xor remaining bytes from partial register into output
@@ -217,7 +217,7 @@ SYM_FUNC_START(hchacha_block_ssse3)
 	movdqu		%xmm3,0x10(%rsi)
 
 	FRAME_END
-	ret
+	RET
 SYM_FUNC_END(hchacha_block_ssse3)
 
 SYM_FUNC_START(chacha_4block_xor_ssse3)
@@ -762,7 +762,7 @@ SYM_FUNC_START(chacha_4block_xor_ssse3)
 
 .Ldone4:
 	lea		-8(%r10),%rsp
-	ret
+	RET
 
 .Lxorpart4:
 	# xor remaining bytes from partial register into output
arch/x86/crypto/crc32-pclmul_asm.S +1 -1
index 6e7d4c4d3208..c392a6edbfff 100644
@@ -236,5 +236,5 @@ fold_64:
 	pxor    %xmm2, %xmm1
 	pextrd  $0x01, %xmm1, %eax
 
-	ret
+	RET
 SYM_FUNC_END(crc32_pclmul_le_16)
arch/x86/crypto/crc32c-pcl-intel-asm_64.S +1 -1
index 884dc767b051..f6e3568fbd63 100644
@@ -309,7 +309,7 @@ do_return:
 	popq    %rsi
 	popq    %rdi
 	popq    %rbx
-        ret
+        RET
 SYM_FUNC_END(crc_pcl)
 
 .section	.rodata, "a", @progbits
arch/x86/crypto/crct10dif-pcl-asm_64.S +1 -1
index b2533d63030e..721474abfb71 100644
@@ -257,7 +257,7 @@ SYM_FUNC_START(crc_t10dif_pcl)
 	# Final CRC value (x^16 * M(x)) mod G(x) is in low 16 bits of xmm0.
 
 	pextrw	$0, %xmm0, %eax
-	ret
+	RET
 
 .align 16
 .Lless_than_256_bytes:
arch/x86/crypto/des3_ede-asm_64.S +2 -2
index fac0fdc3f25d..f4c760f4cade 100644
@@ -243,7 +243,7 @@ SYM_FUNC_START(des3_ede_x86_64_crypt_blk)
 	popq %r12;
 	popq %rbx;
 
-	ret;
+	RET;
 SYM_FUNC_END(des3_ede_x86_64_crypt_blk)
 
 /***********************************************************************
@@ -528,7 +528,7 @@ SYM_FUNC_START(des3_ede_x86_64_crypt_blk_3way)
 	popq %r12;
 	popq %rbx;
 
-	ret;
+	RET;
 SYM_FUNC_END(des3_ede_x86_64_crypt_blk_3way)
 
 .section	.rodata, "a", @progbits
arch/x86/crypto/ghash-clmulni-intel_asm.S +3 -3
index 99ac25e18e09..2bf871899920 100644
@@ -85,7 +85,7 @@ SYM_FUNC_START_LOCAL(__clmul_gf128mul_ble)
 	psrlq $1, T2
 	pxor T2, T1
 	pxor T1, DATA
-	ret
+	RET
 SYM_FUNC_END(__clmul_gf128mul_ble)
 
 /* void clmul_ghash_mul(char *dst, const u128 *shash) */
@@ -99,7 +99,7 @@ SYM_FUNC_START(clmul_ghash_mul)
 	pshufb BSWAP, DATA
 	movups DATA, (%rdi)
 	FRAME_END
-	ret
+	RET
 SYM_FUNC_END(clmul_ghash_mul)
 
 /*
@@ -128,5 +128,5 @@ SYM_FUNC_START(clmul_ghash_update)
 	movups DATA, (%rdi)
 .Lupdate_just_ret:
 	FRAME_END
-	ret
+	RET
 SYM_FUNC_END(clmul_ghash_update)
arch/x86/crypto/nh-avx2-x86_64.S +1 -1
index b22c7b936272..6a0b15e7196a 100644
@@ -153,5 +153,5 @@ SYM_FUNC_START(nh_avx2)
 	vpaddq		T1, T0, T0
 	vpaddq		T4, T0, T0
 	vmovdqu		T0, (HASH)
-	ret
+	RET
 SYM_FUNC_END(nh_avx2)
arch/x86/crypto/nh-sse2-x86_64.S +1 -1
index d7ae22dd6683..34c567bbcb4f 100644
@@ -119,5 +119,5 @@ SYM_FUNC_START(nh_sse2)
 	paddq		PASS2_SUMS, T1
 	movdqu		T0, 0x00(HASH)
 	movdqu		T1, 0x10(HASH)
-	ret
+	RET
 SYM_FUNC_END(nh_sse2)
arch/x86/crypto/poly1305-x86_64-cryptogams.pl +19 -19
index 7d568012cc15..58eaec958c86 100644
@@ -297,7 +297,7 @@ ___
 $code.=<<___;
 	mov	\$1,%eax
 .Lno_key:
-	ret
+	RET
 ___
 &end_function("poly1305_init_x86_64");
 
@@ -373,7 +373,7 @@ $code.=<<___;
 .cfi_adjust_cfa_offset	-48
 .Lno_data:
 .Lblocks_epilogue:
-	ret
+	RET
 .cfi_endproc
 ___
 &end_function("poly1305_blocks_x86_64");
@@ -399,7 +399,7 @@ $code.=<<___;
 	mov	%rax,0($mac)	# write result
 	mov	%rcx,8($mac)
 
-	ret
+	RET
 ___
 &end_function("poly1305_emit_x86_64");
 if ($avx) {
@@ -429,7 +429,7 @@ ___
 	&poly1305_iteration();
 $code.=<<___;
 	pop $ctx
-	ret
+	RET
 .size	__poly1305_block,.-__poly1305_block
 
 .type	__poly1305_init_avx,\@abi-omnipotent
@@ -594,7 +594,7 @@ __poly1305_init_avx:
 
 	lea	-48-64($ctx),$ctx	# size [de-]optimization
 	pop %rbp
-	ret
+	RET
 .size	__poly1305_init_avx,.-__poly1305_init_avx
 ___
 
@@ -747,7 +747,7 @@ $code.=<<___;
 .cfi_restore	%rbp
 .Lno_data_avx:
 .Lblocks_avx_epilogue:
-	ret
+	RET
 .cfi_endproc
 
 .align	32
@@ -1452,7 +1452,7 @@ $code.=<<___	if (!$win64);
 ___
 $code.=<<___;
 	vzeroupper
-	ret
+	RET
 .cfi_endproc
 ___
 &end_function("poly1305_blocks_avx");
@@ -1508,7 +1508,7 @@ $code.=<<___;
 	mov	%rax,0($mac)	# write result
 	mov	%rcx,8($mac)
 
-	ret
+	RET
 ___
 &end_function("poly1305_emit_avx");
 
@@ -1675,7 +1675,7 @@ $code.=<<___;
 .cfi_restore 	%rbp
 .Lno_data_avx2$suffix:
 .Lblocks_avx2_epilogue$suffix:
-	ret
+	RET
 .cfi_endproc
 
 .align	32
@@ -2201,7 +2201,7 @@ $code.=<<___	if (!$win64);
 ___
 $code.=<<___;
 	vzeroupper
-	ret
+	RET
 .cfi_endproc
 ___
 if($avx > 2 && $avx512) {
@@ -2792,7 +2792,7 @@ $code.=<<___	if (!$win64);
 .cfi_def_cfa_register	%rsp
 ___
 $code.=<<___;
-	ret
+	RET
 .cfi_endproc
 ___
 
@@ -2893,7 +2893,7 @@ $code.=<<___	if ($flavour =~ /elf32/);
 ___
 $code.=<<___;
 	mov	\$1,%eax
-	ret
+	RET
 .size	poly1305_init_base2_44,.-poly1305_init_base2_44
 ___
 {
@@ -3010,7 +3010,7 @@ poly1305_blocks_vpmadd52:
 	jnz		.Lblocks_vpmadd52_4x
 
 .Lno_data_vpmadd52:
-	ret
+	RET
 .size	poly1305_blocks_vpmadd52,.-poly1305_blocks_vpmadd52
 ___
 }
@@ -3451,7 +3451,7 @@ poly1305_blocks_vpmadd52_4x:
 	vzeroall
 
 .Lno_data_vpmadd52_4x:
-	ret
+	RET
 .size	poly1305_blocks_vpmadd52_4x,.-poly1305_blocks_vpmadd52_4x
 ___
 }
@@ -3824,7 +3824,7 @@ $code.=<<___;
 	vzeroall
 
 .Lno_data_vpmadd52_8x:
-	ret
+	RET
 .size	poly1305_blocks_vpmadd52_8x,.-poly1305_blocks_vpmadd52_8x
 ___
 }
@@ -3861,7 +3861,7 @@ poly1305_emit_base2_44:
 	mov	%rax,0($mac)	# write result
 	mov	%rcx,8($mac)
 
-	ret
+	RET
 .size	poly1305_emit_base2_44,.-poly1305_emit_base2_44
 ___
 }	}	}
@@ -3916,7 +3916,7 @@ xor128_encrypt_n_pad:
 
 .Ldone_enc:
 	mov	$otp,%rax
-	ret
+	RET
 .size	xor128_encrypt_n_pad,.-xor128_encrypt_n_pad
 
 .globl	xor128_decrypt_n_pad
@@ -3967,7 +3967,7 @@ xor128_decrypt_n_pad:
 
 .Ldone_dec:
 	mov	$otp,%rax
-	ret
+	RET
 .size	xor128_decrypt_n_pad,.-xor128_decrypt_n_pad
 ___
 }
@@ -4109,7 +4109,7 @@ avx_handler:
 	pop	%rbx
 	pop	%rdi
 	pop	%rsi
-	ret
+	RET
 .size	avx_handler,.-avx_handler
 
 .section	.pdata
arch/x86/crypto/serpent-avx-x86_64-asm_64.S +8 -8
index ba9e4c1e7f5c..c985bc15304b 100644
@@ -605,7 +605,7 @@ SYM_FUNC_START_LOCAL(__serpent_enc_blk8_avx)
 	write_blocks(RA1, RB1, RC1, RD1, RK0, RK1, RK2);
 	write_blocks(RA2, RB2, RC2, RD2, RK0, RK1, RK2);
 
-	ret;
+	RET;
 SYM_FUNC_END(__serpent_enc_blk8_avx)
 
 .align 8
@@ -659,7 +659,7 @@ SYM_FUNC_START_LOCAL(__serpent_dec_blk8_avx)
 	write_blocks(RC1, RD1, RB1, RE1, RK0, RK1, RK2);
 	write_blocks(RC2, RD2, RB2, RE2, RK0, RK1, RK2);
 
-	ret;
+	RET;
 SYM_FUNC_END(__serpent_dec_blk8_avx)
 
 SYM_FUNC_START(serpent_ecb_enc_8way_avx)
@@ -677,7 +677,7 @@ SYM_FUNC_START(serpent_ecb_enc_8way_avx)
 	store_8way(%rsi, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
 
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(serpent_ecb_enc_8way_avx)
 
 SYM_FUNC_START(serpent_ecb_dec_8way_avx)
@@ -695,7 +695,7 @@ SYM_FUNC_START(serpent_ecb_dec_8way_avx)
 	store_8way(%rsi, RC1, RD1, RB1, RE1, RC2, RD2, RB2, RE2);
 
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(serpent_ecb_dec_8way_avx)
 
 SYM_FUNC_START(serpent_cbc_dec_8way_avx)
@@ -713,7 +713,7 @@ SYM_FUNC_START(serpent_cbc_dec_8way_avx)
 	store_cbc_8way(%rdx, %rsi, RC1, RD1, RB1, RE1, RC2, RD2, RB2, RE2);
 
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(serpent_cbc_dec_8way_avx)
 
 SYM_FUNC_START(serpent_ctr_8way_avx)
@@ -733,7 +733,7 @@ SYM_FUNC_START(serpent_ctr_8way_avx)
 	store_ctr_8way(%rdx, %rsi, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
 
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(serpent_ctr_8way_avx)
 
 SYM_FUNC_START(serpent_xts_enc_8way_avx)
@@ -755,7 +755,7 @@ SYM_FUNC_START(serpent_xts_enc_8way_avx)
 	store_xts_8way(%rsi, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
 
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(serpent_xts_enc_8way_avx)
 
 SYM_FUNC_START(serpent_xts_dec_8way_avx)
@@ -777,5 +777,5 @@ SYM_FUNC_START(serpent_xts_dec_8way_avx)
 	store_xts_8way(%rsi, RC1, RD1, RB1, RE1, RC2, RD2, RB2, RE2);
 
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(serpent_xts_dec_8way_avx)
arch/x86/crypto/serpent-avx2-asm_64.S +8 -8
index c9648aeae705..ca18948964f4 100644
@@ -611,7 +611,7 @@ SYM_FUNC_START_LOCAL(__serpent_enc_blk16)
 	write_blocks(RA1, RB1, RC1, RD1, RK0, RK1, RK2);
 	write_blocks(RA2, RB2, RC2, RD2, RK0, RK1, RK2);
 
-	ret;
+	RET;
 SYM_FUNC_END(__serpent_enc_blk16)
 
 .align 8
@@ -665,7 +665,7 @@ SYM_FUNC_START_LOCAL(__serpent_dec_blk16)
 	write_blocks(RC1, RD1, RB1, RE1, RK0, RK1, RK2);
 	write_blocks(RC2, RD2, RB2, RE2, RK0, RK1, RK2);
 
-	ret;
+	RET;
 SYM_FUNC_END(__serpent_dec_blk16)
 
 SYM_FUNC_START(serpent_ecb_enc_16way)
@@ -687,7 +687,7 @@ SYM_FUNC_START(serpent_ecb_enc_16way)
 	vzeroupper;
 
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(serpent_ecb_enc_16way)
 
 SYM_FUNC_START(serpent_ecb_dec_16way)
@@ -709,7 +709,7 @@ SYM_FUNC_START(serpent_ecb_dec_16way)
 	vzeroupper;
 
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(serpent_ecb_dec_16way)
 
 SYM_FUNC_START(serpent_cbc_dec_16way)
@@ -732,7 +732,7 @@ SYM_FUNC_START(serpent_cbc_dec_16way)
 	vzeroupper;
 
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(serpent_cbc_dec_16way)
 
 SYM_FUNC_START(serpent_ctr_16way)
@@ -757,7 +757,7 @@ SYM_FUNC_START(serpent_ctr_16way)
 	vzeroupper;
 
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(serpent_ctr_16way)
 
 SYM_FUNC_START(serpent_xts_enc_16way)
@@ -783,7 +783,7 @@ SYM_FUNC_START(serpent_xts_enc_16way)
 	vzeroupper;
 
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(serpent_xts_enc_16way)
 
 SYM_FUNC_START(serpent_xts_dec_16way)
@@ -809,5 +809,5 @@ SYM_FUNC_START(serpent_xts_dec_16way)
 	vzeroupper;
 
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(serpent_xts_dec_16way)
arch/x86/crypto/serpent-sse2-i586-asm_32.S +3 -3
index 6379b99cb722..8ccb03ad7cef 100644
@@ -553,12 +553,12 @@ SYM_FUNC_START(__serpent_enc_blk_4way)
 
 	write_blocks(%eax, RA, RB, RC, RD, RT0, RT1, RE);
 
-	ret;
+	RET;
 
 .L__enc_xor4:
 	xor_blocks(%eax, RA, RB, RC, RD, RT0, RT1, RE);
 
-	ret;
+	RET;
 SYM_FUNC_END(__serpent_enc_blk_4way)
 
 SYM_FUNC_START(serpent_dec_blk_4way)
@@ -612,5 +612,5 @@ SYM_FUNC_START(serpent_dec_blk_4way)
 	movl arg_dst(%esp), %eax;
 	write_blocks(%eax, RC, RD, RB, RE, RT0, RT1, RA);
 
-	ret;
+	RET;
 SYM_FUNC_END(serpent_dec_blk_4way)
arch/x86/crypto/serpent-sse2-x86_64-asm_64.S +3 -3
index efb6dc17dc90..e0998a011d1d 100644
@@ -675,13 +675,13 @@ SYM_FUNC_START(__serpent_enc_blk_8way)
 	write_blocks(%rsi, RA1, RB1, RC1, RD1, RK0, RK1, RK2);
 	write_blocks(%rax, RA2, RB2, RC2, RD2, RK0, RK1, RK2);
 
-	ret;
+	RET;
 
 .L__enc_xor8:
 	xor_blocks(%rsi, RA1, RB1, RC1, RD1, RK0, RK1, RK2);
 	xor_blocks(%rax, RA2, RB2, RC2, RD2, RK0, RK1, RK2);
 
-	ret;
+	RET;
 SYM_FUNC_END(__serpent_enc_blk_8way)
 
 SYM_FUNC_START(serpent_dec_blk_8way)
@@ -735,5 +735,5 @@ SYM_FUNC_START(serpent_dec_blk_8way)
 	write_blocks(%rsi, RC1, RD1, RB1, RE1, RK0, RK1, RK2);
 	write_blocks(%rax, RC2, RD2, RB2, RE2, RK0, RK1, RK2);
 
-	ret;
+	RET;
 SYM_FUNC_END(serpent_dec_blk_8way)
arch/x86/crypto/sha1_avx2_x86_64_asm.S +1 -1
index 1e594d60afa5..6fa622652bfc 100644
@@ -674,7 +674,7 @@ _loop3:
 	pop	%r12
 	pop	%rbx
 
-	ret
+	RET
 
 	SYM_FUNC_END(\name)
 .endm
arch/x86/crypto/sha1_ni_asm.S +1 -1
index 11efe3a45a1f..b59f3ca62837 100644
@@ -290,7 +290,7 @@ SYM_FUNC_START(sha1_ni_transform)
 .Ldone_hash:
 	mov		RSPSAVE, %rsp
 
-	ret
+	RET
 SYM_FUNC_END(sha1_ni_transform)
 
 .section	.rodata.cst16.PSHUFFLE_BYTE_FLIP_MASK, "aM", @progbits, 16
arch/x86/crypto/sha1_ssse3_asm.S +1 -1
index d25668d2a1e9..263f916362e0 100644
@@ -99,7 +99,7 @@
 	pop	%rbp
 	pop	%r12
 	pop	%rbx
-	ret
+	RET
 
 	SYM_FUNC_END(\name)
 .endm
arch/x86/crypto/sha256-avx-asm.S +1 -1
index 4739cd31b9db..3baa1ec39097 100644
@@ -458,7 +458,7 @@ done_hash:
 	popq    %r13
 	popq	%r12
 	popq    %rbx
-	ret
+	RET
 SYM_FUNC_END(sha256_transform_avx)
 
 .section	.rodata.cst256.K256, "aM", @progbits, 256
arch/x86/crypto/sha256-avx2-asm.S +1 -1
index 11ff60c29c8b..3439aaf4295d 100644
@@ -711,7 +711,7 @@ done_hash:
 	popq	%r13
 	popq	%r12
 	popq	%rbx
-	ret
+	RET
 SYM_FUNC_END(sha256_transform_rorx)
 
 .section	.rodata.cst512.K256, "aM", @progbits, 512
arch/x86/crypto/sha256-ssse3-asm.S +1 -1
index ddfa863b4ee3..c4a5db612c32 100644
@@ -472,7 +472,7 @@ done_hash:
 	popq    %r12
 	popq    %rbx
 
-	ret
+	RET
 SYM_FUNC_END(sha256_transform_ssse3)
 
 .section	.rodata.cst256.K256, "aM", @progbits, 256
arch/x86/crypto/sha256_ni_asm.S +1 -1
index 7abade04a3a3..94d50dd27cb5 100644
@@ -326,7 +326,7 @@ SYM_FUNC_START(sha256_ni_transform)
 
 .Ldone_hash:
 
-	ret
+	RET
 SYM_FUNC_END(sha256_ni_transform)
 
 .section	.rodata.cst256.K256, "aM", @progbits, 256
arch/x86/crypto/sha512-avx-asm.S +1 -1
index 63470fd6ae32..34fc71c3524e 100644
@@ -364,7 +364,7 @@ updateblock:
 	mov	frame_RSPSAVE(%rsp), %rsp
 
 nowork:
-	ret
+	RET
 SYM_FUNC_END(sha512_transform_avx)
 
 ########################################################################
arch/x86/crypto/sha512-avx2-asm.S +1 -1
index 3a44bdcfd583..399fa74ab3d3 100644
@@ -681,7 +681,7 @@ done_hash:
 
 	# Restore Stack Pointer
 	mov	frame_RSPSAVE(%rsp), %rsp
-	ret
+	RET
 SYM_FUNC_END(sha512_transform_rorx)
 
 ########################################################################
arch/x86/crypto/sha512-ssse3-asm.S +1 -1
index 7946a1bee85b..e9b460a54503 100644
@@ -366,7 +366,7 @@ updateblock:
 	mov	frame_RSPSAVE(%rsp), %rsp
 
 nowork:
-	ret
+	RET
 SYM_FUNC_END(sha512_transform_ssse3)
 
 ########################################################################
arch/x86/crypto/twofish-avx-x86_64-asm_64.S +8 -8
index a5151393bb2f..c3707a71ef72 100644
@@ -272,7 +272,7 @@ SYM_FUNC_START_LOCAL(__twofish_enc_blk8)
 	outunpack_blocks(RC1, RD1, RA1, RB1, RK1, RX0, RY0, RK2);
 	outunpack_blocks(RC2, RD2, RA2, RB2, RK1, RX0, RY0, RK2);
 
-	ret;
+	RET;
 SYM_FUNC_END(__twofish_enc_blk8)
 
 .align 8
@@ -312,7 +312,7 @@ SYM_FUNC_START_LOCAL(__twofish_dec_blk8)
 	outunpack_blocks(RA1, RB1, RC1, RD1, RK1, RX0, RY0, RK2);
 	outunpack_blocks(RA2, RB2, RC2, RD2, RK1, RX0, RY0, RK2);
 
-	ret;
+	RET;
 SYM_FUNC_END(__twofish_dec_blk8)
 
 SYM_FUNC_START(twofish_ecb_enc_8way)
@@ -332,7 +332,7 @@ SYM_FUNC_START(twofish_ecb_enc_8way)
 	store_8way(%r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
 
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(twofish_ecb_enc_8way)
 
 SYM_FUNC_START(twofish_ecb_dec_8way)
@@ -352,7 +352,7 @@ SYM_FUNC_START(twofish_ecb_dec_8way)
 	store_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
 
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(twofish_ecb_dec_8way)
 
 SYM_FUNC_START(twofish_cbc_dec_8way)
@@ -377,7 +377,7 @@ SYM_FUNC_START(twofish_cbc_dec_8way)
 	popq %r12;
 
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(twofish_cbc_dec_8way)
 
 SYM_FUNC_START(twofish_ctr_8way)
@@ -404,7 +404,7 @@ SYM_FUNC_START(twofish_ctr_8way)
 	popq %r12;
 
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(twofish_ctr_8way)
 
 SYM_FUNC_START(twofish_xts_enc_8way)
@@ -428,7 +428,7 @@ SYM_FUNC_START(twofish_xts_enc_8way)
 	store_xts_8way(%r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
 
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(twofish_xts_enc_8way)
 
 SYM_FUNC_START(twofish_xts_dec_8way)
@@ -452,5 +452,5 @@ SYM_FUNC_START(twofish_xts_dec_8way)
 	store_xts_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
 
 	FRAME_END
-	ret;
+	RET;
 SYM_FUNC_END(twofish_xts_dec_8way)
arch/x86/crypto/twofish-i586-asm_32.S +2 -2
index a6f09e4f2e46..3abcad661884 100644
@@ -260,7 +260,7 @@ SYM_FUNC_START(twofish_enc_blk)
 	pop	%ebx
 	pop	%ebp
 	mov	$1,	%eax
-	ret
+	RET
 SYM_FUNC_END(twofish_enc_blk)
 
 SYM_FUNC_START(twofish_dec_blk)
@@ -317,5 +317,5 @@ SYM_FUNC_START(twofish_dec_blk)
 	pop	%ebx
 	pop	%ebp
 	mov	$1,	%eax
-	ret
+	RET
 SYM_FUNC_END(twofish_dec_blk)
arch/x86/crypto/twofish-x86_64-asm_64-3way.S +3 -3
index fc23552afe37..b12d916f08d6 100644
@@ -258,7 +258,7 @@ SYM_FUNC_START(__twofish_enc_blk_3way)
 	popq %rbx;
 	popq %r12;
 	popq %r13;
-	ret;
+	RET;
 
 .L__enc_xor3:
 	outunpack_enc3(xor);
@@ -266,7 +266,7 @@ SYM_FUNC_START(__twofish_enc_blk_3way)
 	popq %rbx;
 	popq %r12;
 	popq %r13;
-	ret;
+	RET;
 SYM_FUNC_END(__twofish_enc_blk_3way)
 
 SYM_FUNC_START(twofish_dec_blk_3way)
@@ -301,5 +301,5 @@ SYM_FUNC_START(twofish_dec_blk_3way)
 	popq %rbx;
 	popq %r12;
 	popq %r13;
-	ret;
+	RET;
 SYM_FUNC_END(twofish_dec_blk_3way)
arch/x86/crypto/twofish-x86_64-asm_64.S +2 -2
index d2e56232494a..775af290cd19 100644
@@ -252,7 +252,7 @@ SYM_FUNC_START(twofish_enc_blk)
 
 	popq	R1
 	movl	$1,%eax
-	ret
+	RET
 SYM_FUNC_END(twofish_enc_blk)
 
 SYM_FUNC_START(twofish_dec_blk)
@@ -304,5 +304,5 @@ SYM_FUNC_START(twofish_dec_blk)
 
 	popq	R1
 	movl	$1,%eax
-	ret
+	RET
 SYM_FUNC_END(twofish_dec_blk)
arch/x86/entry/Makefile +1 -1
index 08bf95dbc911..58533752efab 100644
@@ -21,7 +21,7 @@ CFLAGS_syscall_64.o		+= $(call cc-option,-Wno-override-init,)
 CFLAGS_syscall_32.o		+= $(call cc-option,-Wno-override-init,)
 CFLAGS_syscall_x32.o		+= $(call cc-option,-Wno-override-init,)
 
-obj-y				:= entry_$(BITS).o thunk_$(BITS).o syscall_$(BITS).o
+obj-y				:= entry.o entry_$(BITS).o thunk_$(BITS).o syscall_$(BITS).o
 obj-y				+= common.o
 
 obj-y				+= vdso/
arch/x86/entry/calling.h +63 -9

102 lines not on this page · raw message

arch/x86/entry/entry.S new file +22 -0
new file mode 100644
index 000000000000..bfb7bcb362bc
@@ -0,0 +1,22 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Common place for both 32- and 64-bit entry routines.
+ */
+
+#include <linux/linkage.h>
+#include <asm/export.h>
+#include <asm/msr-index.h>
+
+.pushsection .noinstr.text, "ax"
+
+SYM_FUNC_START(entry_ibpb)
+	movl	$MSR_IA32_PRED_CMD, %ecx
+	movl	$PRED_CMD_IBPB, %eax
+	xorl	%edx, %edx
+	wrmsr
+	RET
+SYM_FUNC_END(entry_ibpb)
+/* For KVM */
+EXPORT_SYMBOL_GPL(entry_ibpb);
+
+.popsection
arch/x86/entry/entry_32.S +2 -4
index df8c017e6161..8fcd6a42b3a1 100644
@@ -40,7 +40,7 @@
 #include <asm/processor-flags.h>
 #include <asm/irq_vectors.h>
 #include <asm/cpufeatures.h>
-#include <asm/alternative-asm.h>
+#include <asm/alternative.h>
 #include <asm/asm.h>
 #include <asm/smap.h>
 #include <asm/frame.h>
@@ -782,7 +782,6 @@ SYM_CODE_START(__switch_to_asm)
 	movl	%ebx, PER_CPU_VAR(stack_canary)+stack_canary_offset
 #endif
 
-#ifdef CONFIG_RETPOLINE
 	/*
 	 * When switching from a shallower to a deeper call stack
 	 * the RSB may either underflow or use entries populated
@@ -791,7 +790,6 @@ SYM_CODE_START(__switch_to_asm)
 	 * speculative execution to prevent attack.
 	 */
 	FILL_RETURN_BUFFER %ebx, RSB_CLEAR_LOOPS, X86_FEATURE_RSB_CTXSW
-#endif
 
 	/* Restore flags or the incoming task to restore AC state. */
 	popfl
@@ -821,7 +819,7 @@ SYM_FUNC_START(schedule_tail_wrapper)
 	popl	%eax
 
 	FRAME_END
-	ret
+	RET
 SYM_FUNC_END(schedule_tail_wrapper)
 .popsection
 
arch/x86/entry/entry_64.S +50 -12

182 lines not on this page · raw message

arch/x86/entry/entry_64_compat.S +17 -4
index 0051cf5c792d..4d637a965efb 100644
@@ -4,7 +4,6 @@
  *
  * Copyright 2000-2002 Andi Kleen, SuSE Labs.
  */
-#include "calling.h"
 #include <asm/asm-offsets.h>
 #include <asm/current.h>
 #include <asm/errno.h>
@@ -14,9 +13,12 @@
 #include <asm/irqflags.h>
 #include <asm/asm.h>
 #include <asm/smap.h>
+#include <asm/nospec-branch.h>
 #include <linux/linkage.h>
 #include <linux/err.h>
 
+#include "calling.h"
+
 	.section .entry.text, "ax"
 
 /*
@@ -47,7 +49,7 @@
  * 0(%ebp) arg6
  */
 SYM_CODE_START(entry_SYSENTER_compat)
-	UNWIND_HINT_EMPTY
+	UNWIND_HINT_ENTRY
 	/* Interrupts are off on entry. */
 	SWAPGS
 
@@ -112,6 +114,9 @@ SYM_INNER_LABEL(entry_SYSENTER_compat_after_hwframe, SYM_L_GLOBAL)
 
 	cld
 
+	IBRS_ENTER
+	UNTRAIN_RET
+
 	/*
 	 * SYSENTER doesn't filter flags, so we need to clear NT and AC
 	 * ourselves.  To save a few cycles, we can check whether
@@ -197,7 +202,7 @@ SYM_CODE_END(entry_SYSENTER_compat)
  * 0(%esp) arg6
  */
 SYM_CODE_START(entry_SYSCALL_compat)
-	UNWIND_HINT_EMPTY
+	UNWIND_HINT_ENTRY
 	/* Interrupts are off on entry. */
 	swapgs
 
@@ -252,6 +257,9 @@ SYM_INNER_LABEL(entry_SYSCALL_compat_after_hwframe, SYM_L_GLOBAL)
 
 	UNWIND_HINT_REGS
 
+	IBRS_ENTER
+	UNTRAIN_RET
+
 	movq	%rsp, %rdi
 	call	do_fast_syscall_32
 	/* XEN PV guests always use IRET path */
@@ -266,6 +274,8 @@ sysret32_from_system_call:
 	 */
 	STACKLEAK_ERASE
 
+	IBRS_EXIT
+
 	movq	RBX(%rsp), %rbx		/* pt_regs->rbx */
 	movq	RBP(%rsp), %rbp		/* pt_regs->rbp */
 	movq	EFLAGS(%rsp), %r11	/* pt_regs->flags (in r11) */
@@ -339,7 +349,7 @@ SYM_CODE_END(entry_SYSCALL_compat)
  * ebp  arg6
  */
 SYM_CODE_START(entry_INT80_compat)
-	UNWIND_HINT_EMPTY
+	UNWIND_HINT_ENTRY
 	/*
 	 * Interrupts are off on entry.
 	 */
@@ -409,6 +419,9 @@ SYM_CODE_START(entry_INT80_compat)
 
 	cld
 
+	IBRS_ENTER
+	UNTRAIN_RET
+
 	movq	%rsp, %rdi
 	call	do_int80_syscall_32
 	jmp	swapgs_restore_regs_and_return_to_usermode
arch/x86/entry/thunk_32.S +1 -1
index f1f96d4d8cd6..7591bab060f7 100644
@@ -24,7 +24,7 @@ SYM_CODE_START_NOALIGN(\name)
 	popl %edx
 	popl %ecx
 	popl %eax
-	ret
+	RET
 	_ASM_NOKPROBE(\name)
 SYM_CODE_END(\name)
 	.endm
arch/x86/entry/thunk_64.S +1 -1
index c9a9fbf1655f..1b5044ad8cd0 100644
@@ -55,7 +55,7 @@ SYM_CODE_START_LOCAL_NOALIGN(__thunk_restore)
 	popq %rsi
 	popq %rdi
 	popq %rbp
-	ret
+	RET
 	_ASM_NOKPROBE(__thunk_restore)
 SYM_CODE_END(__thunk_restore)
 #endif
arch/x86/entry/vdso/Makefile +1 -0
index 21243747965d..f181220f1b5d 100644
@@ -91,6 +91,7 @@ endif
 endif
 
 $(vobjs): KBUILD_CFLAGS := $(filter-out $(GCC_PLUGINS_CFLAGS) $(RETPOLINE_CFLAGS),$(KBUILD_CFLAGS)) $(CFL)
+$(vobjs): KBUILD_AFLAGS += -DBUILD_VDSO
 
 #
 # vDSO code runs in userspace and -pg doesn't help with profiling anyway.
arch/x86/entry/vdso/vdso32/system_call.S +2 -2
index de1fff7188aa..c92a8fef2ed2 100644
@@ -6,7 +6,7 @@
 #include <linux/linkage.h>
 #include <asm/dwarf2.h>
 #include <asm/cpufeatures.h>
-#include <asm/alternative-asm.h>
+#include <asm/alternative.h>
 
 	.text
 	.globl __kernel_vsyscall
@@ -78,7 +78,7 @@ SYM_INNER_LABEL(int80_landing_pad, SYM_L_GLOBAL)
 	popl	%ecx
 	CFI_RESTORE		ecx
 	CFI_ADJUST_CFA_OFFSET	-4
-	ret
+	RET
 	CFI_ENDPROC
 
 	.size __kernel_vsyscall,.-__kernel_vsyscall
arch/x86/entry/vsyscall/vsyscall_emu_64.S +3 -0
index 2e203f3a25a7..ef2dd1827243 100644
@@ -20,16 +20,19 @@ __vsyscall_page:
 	mov $__NR_gettimeofday, %rax
 	syscall
 	ret
+	int3
 
 	.balign 1024, 0xcc
 	mov $__NR_time, %rax
 	syscall
 	ret
+	int3
 
 	.balign 1024, 0xcc
 	mov $__NR_getcpu, %rax
 	syscall
 	ret
+	int3
 
 	.balign 4096, 0xcc
 
arch/x86/include/asm/GEN-for-each-reg.h +10 -4
index 1b07fb102c4e..07949102a08d 100644
@@ -1,11 +1,16 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * These are in machine order; things rely on that.
+ */
 #ifdef CONFIG_64BIT
 GEN(rax)
-GEN(rbx)
 GEN(rcx)
 GEN(rdx)
+GEN(rbx)
+GEN(rsp)
+GEN(rbp)
 GEN(rsi)
 GEN(rdi)
-GEN(rbp)
 GEN(r8)
 GEN(r9)
 GEN(r10)
@@ -16,10 +21,11 @@ GEN(r14)
 GEN(r15)
 #else
 GEN(eax)
-GEN(ebx)
 GEN(ecx)
 GEN(edx)
+GEN(ebx)
+GEN(esp)
+GEN(ebp)
 GEN(esi)
 GEN(edi)
-GEN(ebp)
 #endif
arch/x86/include/asm/alternative-asm.h deleted +0 -114

114 lines not on this page · raw message

arch/x86/include/asm/alternative.h +127 -10

195 lines not on this page · raw message

arch/x86/include/asm/asm-prototypes.h +0 -17
index 51e2bf27cc9b..8f80de627c60 100644
@@ -17,20 +17,3 @@
 extern void cmpxchg8b_emu(void);
 #endif
 
-#ifdef CONFIG_RETPOLINE
-
-#define DECL_INDIRECT_THUNK(reg) \
-	extern asmlinkage void __x86_indirect_thunk_ ## reg (void);
-
-#define DECL_RETPOLINE(reg) \
-	extern asmlinkage void __x86_retpoline_ ## reg (void);
-
-#undef GEN
-#define GEN(reg) DECL_INDIRECT_THUNK(reg)
-#include <asm/GEN-for-each-reg.h>
-
-#undef GEN
-#define GEN(reg) DECL_RETPOLINE(reg)
-#include <asm/GEN-for-each-reg.h>
-
-#endif /* CONFIG_RETPOLINE */
arch/x86/include/asm/cpufeature.h +9 -32

54 lines not on this page · raw message

arch/x86/include/asm/cpufeatures.h +12 -2
index f6a6ac0b3bcd..e077f4fe7c6d 100644
@@ -203,8 +203,8 @@
 #define X86_FEATURE_PROC_FEEDBACK	( 7*32+ 9) /* AMD ProcFeedbackInterface */
 #define X86_FEATURE_SME			( 7*32+10) /* AMD Secure Memory Encryption */
 #define X86_FEATURE_PTI			( 7*32+11) /* Kernel Page Table Isolation enabled */
-#define X86_FEATURE_RETPOLINE		( 7*32+12) /* "" Generic Retpoline mitigation for Spectre variant 2 */
-#define X86_FEATURE_RETPOLINE_LFENCE	( 7*32+13) /* "" Use LFENCE for Spectre variant 2 */
+#define X86_FEATURE_KERNEL_IBRS		( 7*32+12) /* "" Set/clear IBRS on kernel entry/exit */
+#define X86_FEATURE_RSB_VMEXIT		( 7*32+13) /* "" Fill RSB on VM-Exit */
 #define X86_FEATURE_INTEL_PPIN		( 7*32+14) /* Intel Processor Inventory Number */
 #define X86_FEATURE_CDP_L2		( 7*32+15) /* Code and Data Prioritization L2 */
 #define X86_FEATURE_MSR_SPEC_CTRL	( 7*32+16) /* "" MSR SPEC_CTRL is implemented */
@@ -290,6 +290,14 @@
 #define X86_FEATURE_FENCE_SWAPGS_KERNEL	(11*32+ 5) /* "" LFENCE in kernel entry SWAPGS path */
 #define X86_FEATURE_SPLIT_LOCK_DETECT	(11*32+ 6) /* #AC for split lock */
 #define X86_FEATURE_PER_THREAD_MBA	(11*32+ 7) /* "" Per-thread Memory Bandwidth Allocation */
+/* FREE!				(11*32+ 8) */
+/* FREE!				(11*32+ 9) */
+#define X86_FEATURE_ENTRY_IBPB		(11*32+10) /* "" Issue an IBPB on kernel entry */
+#define X86_FEATURE_RRSBA_CTRL		(11*32+11) /* "" RET prediction control */
+#define X86_FEATURE_RETPOLINE		(11*32+12) /* "" Generic Retpoline mitigation for Spectre variant 2 */
+#define X86_FEATURE_RETPOLINE_LFENCE	(11*32+13) /* "" Use LFENCE for Spectre variant 2 */
+#define X86_FEATURE_RETHUNK		(11*32+14) /* "" Use REturn THUNK */
+#define X86_FEATURE_UNRET		(11*32+15) /* "" AMD BTB untrain return */
 
 /* Intel-defined CPU features, CPUID level 0x00000007:1 (EAX), word 12 */
 #define X86_FEATURE_AVX512_BF16		(12*32+ 5) /* AVX512 BFLOAT16 instructions */
@@ -308,6 +316,7 @@
 #define X86_FEATURE_AMD_SSBD		(13*32+24) /* "" Speculative Store Bypass Disable */
 #define X86_FEATURE_VIRT_SSBD		(13*32+25) /* Virtualized Speculative Store Bypass Disable */
 #define X86_FEATURE_AMD_SSB_NO		(13*32+26) /* "" Speculative Store Bypass is fixed in hardware. */
+#define X86_FEATURE_BTC_NO		(13*32+29) /* "" Not vulnerable to Branch Type Confusion */
 
 /* Thermal and Power Management Leaf, CPUID level 0x00000006 (EAX), word 14 */
 #define X86_FEATURE_DTHERM		(14*32+ 0) /* Digital Thermal Sensor */
@@ -418,5 +427,6 @@
 #define X86_BUG_ITLB_MULTIHIT		X86_BUG(23) /* CPU may incur MCE during certain page attribute changes */
 #define X86_BUG_SRBDS			X86_BUG(24) /* CPU may leak RNG bits if not mitigated */
 #define X86_BUG_MMIO_STALE_DATA		X86_BUG(25) /* CPU is affected by Processor MMIO Stale Data vulnerabilities */
+#define X86_BUG_RETBLEED		X86_BUG(26) /* CPU is affected by RETBleed */
 
 #endif /* _ASM_X86_CPUFEATURES_H */
arch/x86/include/asm/disabled-features.h +20 -1
index 09db5b8f1444..16c24915210d 100644
@@ -56,6 +56,25 @@
 # define DISABLE_PTI		(1 << (X86_FEATURE_PTI & 31))
 #endif
 
+#ifdef CONFIG_RETPOLINE
+# define DISABLE_RETPOLINE	0
+#else
+# define DISABLE_RETPOLINE	((1 << (X86_FEATURE_RETPOLINE & 31)) | \
+				 (1 << (X86_FEATURE_RETPOLINE_LFENCE & 31)))
+#endif
+
+#ifdef CONFIG_RETHUNK
+# define DISABLE_RETHUNK	0
+#else
+# define DISABLE_RETHUNK	(1 << (X86_FEATURE_RETHUNK & 31))
+#endif
+
+#ifdef CONFIG_CPU_UNRET_ENTRY
+# define DISABLE_UNRET		0
+#else
+# define DISABLE_UNRET		(1 << (X86_FEATURE_UNRET & 31))
+#endif
+
 /* Force disable because it's broken beyond repair */
 #define DISABLE_ENQCMD		(1 << (X86_FEATURE_ENQCMD & 31))
 
@@ -73,7 +92,7 @@
 #define DISABLED_MASK8	0
 #define DISABLED_MASK9	(DISABLE_SMAP)
 #define DISABLED_MASK10	0
-#define DISABLED_MASK11	0
+#define DISABLED_MASK11	(DISABLE_RETPOLINE|DISABLE_RETHUNK|DISABLE_UNRET)
 #define DISABLED_MASK12	0
 #define DISABLED_MASK13	0
 #define DISABLED_MASK14	0
arch/x86/include/asm/inat.h +1 -1
index 4cf2ad521f65..b56c5741581a 100644
@@ -6,7 +6,7 @@
  *
  * Written by Masami Hiramatsu <[email protected]>
  */
-#include <asm/inat_types.h>
+#include <asm/inat_types.h> /* __ignore_sync_check__ */
 
 /*
  * Internal bits. Don't use bitmasks directly, because these bits are
arch/x86/include/asm/insn-eval.h +2 -2
index c1438f9239e4..594ad2f57d23 100644
@@ -26,7 +26,7 @@ int insn_fetch_from_user(struct pt_regs *regs,
 			 unsigned char buf[MAX_INSN_SIZE]);
 int insn_fetch_from_user_inatomic(struct pt_regs *regs,
 				  unsigned char buf[MAX_INSN_SIZE]);
-bool insn_decode(struct insn *insn, struct pt_regs *regs,
-		 unsigned char buf[MAX_INSN_SIZE], int buf_size);
+bool insn_decode_from_regs(struct insn *insn, struct pt_regs *regs,
+			   unsigned char buf[MAX_INSN_SIZE], int buf_size);
 
 #endif /* _ASM_X86_INSN_EVAL_H */
arch/x86/include/asm/insn.h +20 -8
index a8c3d284fa46..0da37756917a 100644
@@ -8,7 +8,7 @@
  */
 
 /* insn_attr_t is defined in inat.h */
-#include <asm/inat.h>
+#include <asm/inat.h> /* __ignore_sync_check__ */
 
 struct insn_field {
 	union {
@@ -87,13 +87,25 @@ struct insn {
 #define X86_VEX_M_MAX	0x1f			/* VEX3.M Maximum value */
 
 extern void insn_init(struct insn *insn, const void *kaddr, int buf_len, int x86_64);
-extern void insn_get_prefixes(struct insn *insn);
-extern void insn_get_opcode(struct insn *insn);
-extern void insn_get_modrm(struct insn *insn);
-extern void insn_get_sib(struct insn *insn);
-extern void insn_get_displacement(struct insn *insn);
-extern void insn_get_immediate(struct insn *insn);
-extern void insn_get_length(struct insn *insn);
+extern int insn_get_prefixes(struct insn *insn);
+extern int insn_get_opcode(struct insn *insn);
+extern int insn_get_modrm(struct insn *insn);
+extern int insn_get_sib(struct insn *insn);
+extern int insn_get_displacement(struct insn *insn);
+extern int insn_get_immediate(struct insn *insn);
+extern int insn_get_length(struct insn *insn);
+
+enum insn_mode {
+	INSN_MODE_32,
+	INSN_MODE_64,
+	/* Mode is determined by the current kernel build. */
+	INSN_MODE_KERN,
+	INSN_NUM_MODES,
+};
+
+extern int insn_decode(struct insn *insn, const void *kaddr, int buf_len, enum insn_mode m);
+
+#define insn_decode_kernel(_insn, _ptr) insn_decode((_insn), (_ptr), MAX_INSN_SIZE, INSN_MODE_KERN)
 
 /* Attribute will be determined after getting ModRM (for opcode groups) */
 static inline void insn_get_attribute(struct insn *insn)
arch/x86/include/asm/linkage.h +22 -0
index 365111789cc6..5000cf59bdf5 100644
@@ -18,6 +18,28 @@
 #define __ALIGN_STR	__stringify(__ALIGN)
 #endif
 
+#if defined(CONFIG_RETHUNK) && !defined(__DISABLE_EXPORTS) && !defined(BUILD_VDSO)
+#define RET	jmp __x86_return_thunk
+#else /* CONFIG_RETPOLINE */
+#ifdef CONFIG_SLS
+#define RET	ret; int3
+#else
+#define RET	ret
+#endif
+#endif /* CONFIG_RETPOLINE */
+
+#else /* __ASSEMBLY__ */
+
+#if defined(CONFIG_RETHUNK) && !defined(__DISABLE_EXPORTS) && !defined(BUILD_VDSO)
+#define ASM_RET	"jmp __x86_return_thunk\n\t"
+#else /* CONFIG_RETPOLINE */
+#ifdef CONFIG_SLS
+#define ASM_RET	"ret; int3\n\t"
+#else
+#define ASM_RET	"ret\n\t"
+#endif
+#endif /* CONFIG_RETPOLINE */
+
 #endif /* __ASSEMBLY__ */
 
 #endif /* _ASM_X86_LINKAGE_H */
arch/x86/include/asm/msr-index.h +13 -0
index 96973d197972..407de670cd60 100644
@@ -51,6 +51,8 @@
 #define SPEC_CTRL_STIBP			BIT(SPEC_CTRL_STIBP_SHIFT)	/* STIBP mask */
 #define SPEC_CTRL_SSBD_SHIFT		2	   /* Speculative Store Bypass Disable bit */
 #define SPEC_CTRL_SSBD			BIT(SPEC_CTRL_SSBD_SHIFT)	/* Speculative Store Bypass Disable */
+#define SPEC_CTRL_RRSBA_DIS_S_SHIFT	6	   /* Disable RRSBA behavior */
+#define SPEC_CTRL_RRSBA_DIS_S		BIT(SPEC_CTRL_RRSBA_DIS_S_SHIFT)
 
 #define MSR_IA32_PRED_CMD		0x00000049 /* Prediction Command */
 #define PRED_CMD_IBPB			BIT(0)	   /* Indirect Branch Prediction Barrier */
@@ -91,6 +93,7 @@
 #define MSR_IA32_ARCH_CAPABILITIES	0x0000010a
 #define ARCH_CAP_RDCL_NO		BIT(0)	/* Not susceptible to Meltdown */
 #define ARCH_CAP_IBRS_ALL		BIT(1)	/* Enhanced IBRS support */
+#define ARCH_CAP_RSBA			BIT(2)	/* RET may use alternative branch predictors */
 #define ARCH_CAP_SKIP_VMENTRY_L1DFLUSH	BIT(3)	/* Skip L1D flush on vmentry */
 #define ARCH_CAP_SSB_NO			BIT(4)	/*
 						 * Not susceptible to Speculative Store Bypass
@@ -138,6 +141,13 @@
 						 * bit available to control VERW
 						 * behavior.
 						 */
+#define ARCH_CAP_RRSBA			BIT(19)	/*
+						 * Indicates RET may use predictors
+						 * other than the RSB. With eIBRS
+						 * enabled predictions in kernel mode
+						 * are restricted to targets in
+						 * kernel.
+						 */
 
 #define MSR_IA32_FLUSH_CMD		0x0000010b
 #define L1D_FLUSH			BIT(0)	/*
@@ -507,6 +517,9 @@
 /* Fam 17h MSRs */
 #define MSR_F17H_IRPERF			0xc00000e9
 
+#define MSR_ZEN2_SPECTRAL_CHICKEN	0xc00110e3
+#define MSR_ZEN2_SPECTRAL_CHICKEN_BIT	BIT_ULL(1)
+
 /* Fam 16h MSRs */
 #define MSR_F16H_L2I_PERF_CTL		0xc0010230
 #define MSR_F16H_L2I_PERF_CTR		0xc0010231
arch/x86/include/asm/nospec-branch.h +71 -70

131 lines not on this page · raw message

arch/x86/include/asm/paravirt.h +1 -1
index 5647bcdba776..4a32b0d34376 100644

Lines of this file are not shown. View the raw message.

arch/x86/include/asm/qspinlock_paravirt.h +2 -2
index 159622ee0674..1474cf96251d 100644

Lines of this file are not shown. View the raw message.

arch/x86/include/asm/smap.h +1 -4
index 8b58d6975d5d..ea1d8eb644cb 100644

Lines of this file are not shown. View the raw message.

arch/x86/include/asm/static_call.h +18 -1
index cbb67b6030f9..491aadfac611 100644

Lines of this file are not shown. View the raw message.

arch/x86/include/asm/unwind_hints.h +13 -10
index 664d4610d700..56664b31b6da 100644

Lines of this file are not shown. View the raw message.

arch/x86/kernel/acpi/wakeup_32.S +3 -3
index daf88f8143c5..cf69081073b5 100644

Lines of this file are not shown. View the raw message.

arch/x86/kernel/alternative.c +364 -42

406 lines not on this page · raw message

arch/x86/kernel/cpu/amd.c +39 -7

46 lines not on this page · raw message

arch/x86/kernel/cpu/bugs.c +406 -69

475 lines not on this page · raw message

arch/x86/kernel/cpu/common.c +39 -22

61 lines not on this page · raw message

arch/x86/kernel/cpu/cpu.h +2 -0
index 093f5fc860e3..91df90abc1d9 100644

Lines of this file are not shown. View the raw message.

arch/x86/kernel/cpu/hygon.c +6 -0
index b78c471ec344..774ca6bfda9f 100644

Lines of this file are not shown. View the raw message.

arch/x86/kernel/cpu/scattered.c +1 -0
index 866c9a9bcdee..82fe492121bb 100644

Lines of this file are not shown. View the raw message.

arch/x86/kernel/ftrace.c +5 -2
index 7edbd5ee5ed4..dca5cf82144c 100644

Lines of this file are not shown. View the raw message.

arch/x86/kernel/ftrace_32.S +3 -3
index e405fe1a8bf4..a0ed0e4a2c0c 100644

Lines of this file are not shown. View the raw message.

arch/x86/kernel/ftrace_64.S +7 -6
index ac3d5f22fe64..e3a375185a1b 100644

Lines of this file are not shown. View the raw message.

arch/x86/kernel/head_32.S +2 -1
index 7ed84c282233..3f1691b89231 100644

Lines of this file are not shown. View the raw message.

arch/x86/kernel/head_64.S +5 -0
index 3c417734790f..0424c2a6c15b 100644

Lines of this file are not shown. View the raw message.

arch/x86/kernel/irqflags.S +2 -2
index 0db0375235b4..a9c36400bdf8 100644

Lines of this file are not shown. View the raw message.

arch/x86/kernel/kprobes/core.c +1 -1
index 535da74c124e..ee85f1b258d0 100644

Lines of this file are not shown. View the raw message.

arch/x86/kernel/kvm.c +1 -1
index 971609fb15c5..fe9babe94861 100644

Lines of this file are not shown. View the raw message.

arch/x86/kernel/module.c +14 -1
index 5e9a34b5bd74..455e195847f9 100644

Lines of this file are not shown. View the raw message.

arch/x86/kernel/paravirt.c +1 -1
index 5e5fcf5c376d..e21937680d1f 100644

Lines of this file are not shown. View the raw message.

arch/x86/kernel/process.c +1 -1
index 0aa1baf9a3af..a2823682d64e 100644

Lines of this file are not shown. View the raw message.

arch/x86/kernel/relocate_kernel_32.S +14 -1
index 94b33885f8d2..82a839885a3c 100644

Lines of this file are not shown. View the raw message.

arch/x86/kernel/relocate_kernel_64.S +12 -1
index a4d9a261425b..d2b7d212caa4 100644

Lines of this file are not shown. View the raw message.

arch/x86/kernel/sev-es.c +1 -1
index c222fab112cb..f441002c2327 100644

Lines of this file are not shown. View the raw message.

arch/x86/kernel/sev_verify_cbit.S +1 -1
index ee04941a6546..3355e27c69eb 100644

Lines of this file are not shown. View the raw message.

arch/x86/kernel/static_call.c +46 -6

52 lines not on this page · raw message

arch/x86/kernel/umip.c +1 -1
index f6225bf22c02..8032f5f7eef9 100644

Lines of this file are not shown. View the raw message.

arch/x86/kernel/verify_cpu.S +2 -2
index 641f0fe1e5b4..1258a5872d12 100644

Lines of this file are not shown. View the raw message.

arch/x86/kernel/vmlinux.lds.S +22 -1
index bf9e0adb5b7e..a21cd2381fa8 100644

Lines of this file are not shown. View the raw message.

arch/x86/kvm/emulate.c +27 -12
index 71e1a2d39f21..737035f16a9e 100644

Lines of this file are not shown. View the raw message.

arch/x86/kvm/svm/vmenter.S +10 -1
index 1ec1ac40e328..c18d812d00cd 100644

Lines of this file are not shown. View the raw message.

arch/x86/kvm/vmx/nested.c +3 -29
index 90881d7b42ea..09804cad6e2d 100644

Lines of this file are not shown. View the raw message.

arch/x86/kvm/vmx/run_flags.h new file +8 -0
new file mode 100644
index 000000000000..edc3f16cc189

Lines of this file are not shown. View the raw message.

arch/x86/kvm/vmx/vmenter.S +85 -85

170 lines not on this page · raw message

arch/x86/kvm/vmx/vmx.c +50 -28

78 lines not on this page · raw message

arch/x86/kvm/vmx/vmx.h +5 -0
index 31317c8915e4..a6b52d3a39c9 100644

Lines of this file are not shown. View the raw message.

arch/x86/kvm/x86.c +2 -2
index c71f702c037d..29a8ca95c581 100644

Lines of this file are not shown. View the raw message.

arch/x86/lib/atomic64_386_32.S +48 -40

88 lines not on this page · raw message

arch/x86/lib/atomic64_cx8_32.S +9 -9
index 1c5c81c16b06..90afb488b396 100644

Lines of this file are not shown. View the raw message.

arch/x86/lib/checksum_32.S +4 -4
index 4304320e51f4..929ad1747dea 100644

Lines of this file are not shown. View the raw message.

arch/x86/lib/clear_page_64.S +3 -3
index c4c7dd115953..fe59b8ac4fcc 100644

Lines of this file are not shown. View the raw message.

arch/x86/lib/cmpxchg16b_emu.S +2 -2
index 3542502faa3b..33c70c0160ea 100644

Lines of this file are not shown. View the raw message.

arch/x86/lib/cmpxchg8b_emu.S +2 -2
index ca01ed6029f4..6a912d58fecc 100644

Lines of this file are not shown. View the raw message.

arch/x86/lib/copy_mc_64.S +3 -3
index 892d8915f609..fdd1929b1f9d 100644

Lines of this file are not shown. View the raw message.

arch/x86/lib/copy_page_64.S +3 -3
index 2402d4c489d2..30ea644bf446 100644

Lines of this file are not shown. View the raw message.

arch/x86/lib/copy_user_64.S +7 -7
index 77b9b2a3b5c8..84cee84fc658 100644

Lines of this file are not shown. View the raw message.

arch/x86/lib/csum-copy_64.S +1 -1
index 1fbd8ee9642d..d9e16a2cf285 100644

Lines of this file are not shown. View the raw message.

arch/x86/lib/error-inject.c +2 -1
index be5b5fb1598b..520897061ee0 100644

Lines of this file are not shown. View the raw message.

arch/x86/lib/getuser.S +11 -11
index fa1bc2104b32..b70d98d79a9d 100644

Lines of this file are not shown. View the raw message.

arch/x86/lib/hweight.S +3 -3
index dbf8cc97b7f5..12c16c6aa44a 100644

Lines of this file are not shown. View the raw message.

arch/x86/lib/inat.c +1 -1
index 12539fca75c4..b0f3b2a62ae2 100644

Lines of this file are not shown. View the raw message.

arch/x86/lib/insn-eval.c +24 -16
index c6a19c88af54..ffc8b7dcf1fe 100644

Lines of this file are not shown. View the raw message.

arch/x86/lib/insn.c +174 -48

222 lines not on this page · raw message

arch/x86/lib/iomap_copy_64.S +1 -1
index cb5a1964506b..a1f9416bf67a 100644

Lines of this file are not shown. View the raw message.

arch/x86/lib/memcpy_64.S +7 -7
index 1e299ac73c86..59cf2343f3d9 100644

Lines of this file are not shown. View the raw message.

arch/x86/lib/memmove_64.S +8 -3
index 41902fe8b859..4b8ee3a2fcc3 100644

Lines of this file are not shown. View the raw message.

arch/x86/lib/memset_64.S +4 -4
index 0bfd26e4ca9e..d624f2bc42f1 100644

Lines of this file are not shown. View the raw message.

arch/x86/lib/msr-reg.S +2 -2
index a2b9caa5274c..ebd259f31496 100644

Lines of this file are not shown. View the raw message.

arch/x86/lib/putuser.S +3 -3
index 0ea344c5ea43..ecb2049c1273 100644

Lines of this file are not shown. View the raw message.

arch/x86/lib/retpoline.S +98 -20

118 lines not on this page · raw message

arch/x86/math-emu/div_Xsig.S +1 -1
index 951da2ad54bb..8c270ab415be 100644

Lines of this file are not shown. View the raw message.

arch/x86/math-emu/div_small.S +1 -1
index d047d1816abe..637439bfefa4 100644

Lines of this file are not shown. View the raw message.

arch/x86/math-emu/mul_Xsig.S +3 -3
index 4afc7b1fa6e9..54a031b66142 100644

Lines of this file are not shown. View the raw message.

arch/x86/math-emu/polynom_Xsig.S +1 -1
index 702315eecb86..35fd723fc0df 100644

Lines of this file are not shown. View the raw message.

arch/x86/math-emu/reg_norm.S +3 -3
index cad1d60b1e84..594936eeed67 100644

Lines of this file are not shown. View the raw message.

arch/x86/math-emu/reg_round.S +1 -1
index 11a1f798451b..8bdbdcee7456 100644

Lines of this file are not shown. View the raw message.

arch/x86/math-emu/reg_u_add.S +1 -1
index 9c9e2c810afe..07247287a3af 100644

Lines of this file are not shown. View the raw message.

arch/x86/math-emu/reg_u_div.S +1 -1
index e2fb5c2644c5..b5a41e2fc484 100644

Lines of this file are not shown. View the raw message.

arch/x86/math-emu/reg_u_mul.S +1 -1
index 0c779c87ac5b..e2588b24b8c2 100644

Lines of this file are not shown. View the raw message.

arch/x86/math-emu/reg_u_sub.S +1 -1
index e9bb7c248649..4c900c29e4ff 100644

Lines of this file are not shown. View the raw message.

arch/x86/math-emu/round_Xsig.S +2 -2
index d9d7de8dbd7b..126c40473bad 100644

Lines of this file are not shown. View the raw message.

arch/x86/math-emu/shr_Xsig.S +4 -4
index 726af985f758..f726bf6f6396 100644

Lines of this file are not shown. View the raw message.

arch/x86/math-emu/wm_shrx.S +8 -8
index 4fc89174caf0..f608a28a4c43 100644

Lines of this file are not shown. View the raw message.

arch/x86/mm/mem_encrypt_boot.S +6 -0
index 7a84fc8bc5c3..145b67299ab6 100644

Lines of this file are not shown. View the raw message.

arch/x86/net/bpf_jit_comp.c +78 -107

185 lines not on this page · raw message

arch/x86/net/bpf_jit_comp32.c +19 -3
index 4bd0f98df700..622af951220c 100644

Lines of this file are not shown. View the raw message.

arch/x86/platform/efi/efi_stub_32.S +1 -1
index 09ec84f6ef51..f3cfdb1c9a35 100644

Lines of this file are not shown. View the raw message.

arch/x86/platform/efi/efi_stub_64.S +1 -1
index 90380a17ab23..2206b8bc47b8 100644

Lines of this file are not shown. View the raw message.

arch/x86/platform/efi/efi_thunk_64.S +4 -1
index 26f0da238c1c..9eac088ef4de 100644

Lines of this file are not shown. View the raw message.

arch/x86/platform/olpc/xo1-wakeup.S +3 -3
index 75f4faff8468..3a5abffe5660 100644

Lines of this file are not shown. View the raw message.

arch/x86/power/hibernate_asm_32.S +2 -2
index 8786653ad3c0..5606a15cf9a1 100644

Lines of this file are not shown. View the raw message.

arch/x86/power/hibernate_asm_64.S +2 -2
index 7918b8415f13..3ae7a3d7d61e 100644

Lines of this file are not shown. View the raw message.

arch/x86/um/checksum_32.S +2 -2
index 13f118dec74f..aed782ab7721 100644

Lines of this file are not shown. View the raw message.

arch/x86/um/setjmp_32.S +1 -1
index 62eaf8c80e04..2d991ddbcca5 100644

Lines of this file are not shown. View the raw message.

arch/x86/um/setjmp_64.S +1 -1
index 1b5d40d4ff46..b46acb6a8ebd 100644

Lines of this file are not shown. View the raw message.

arch/x86/xen/Makefile +0 -1
index fc5c5ba4aacb..40b5779fce21 100644

Lines of this file are not shown. View the raw message.

arch/x86/xen/setup.c +3 -3
index 8bfc10330107..1f80dd3a2dd4 100644

Lines of this file are not shown. View the raw message.

arch/x86/xen/xen-asm.S +26 -17

43 lines not on this page · raw message

arch/x86/xen/xen-head.S +4 -2
index 2d7c8f34f56c..2a3ef5fcba34 100644

Lines of this file are not shown. View the raw message.

arch/x86/xen/xen-ops.h +3 -3
index 9546c3384c75..8695809b88f0 100644

Lines of this file are not shown. View the raw message.

drivers/base/cpu.c +8 -0
index 8ecb9f90f467..24dd532c8e5e 100644

Lines of this file are not shown. View the raw message.

drivers/idle/intel_idle.c +37 -6

43 lines not on this page · raw message

include/linux/cpu.h +2 -0
index d63b8f70d123..24e5f237244d 100644

Lines of this file are not shown. View the raw message.

include/linux/kvm_host.h +1 -1
index c66c702a4f07..439fbe0ee0c7 100644

Lines of this file are not shown. View the raw message.

include/linux/objtool.h +11 -3
index 577f51436cf9..662f19374bd9 100644

Lines of this file are not shown. View the raw message.

samples/ftrace/ftrace-direct-modify.c +2 -2
index 89e6bf27cd9f..d620f3da086f 100644

Lines of this file are not shown. View the raw message.

samples/ftrace/ftrace-direct-too.c +1 -1
index 11b99325f3db..3927cb880d1a 100644

Lines of this file are not shown. View the raw message.

samples/ftrace/ftrace-direct.c +1 -1
index 642c50b5f716..1e901bb8d729 100644

Lines of this file are not shown. View the raw message.

scripts/Makefile.build +6 -0
index 8bd4e673383f..17e8b2065900 100644

Lines of this file are not shown. View the raw message.

scripts/link-vmlinux.sh +6 -0
index 6eded325c837..d0b44bee9286 100755

Lines of this file are not shown. View the raw message.

security/Kconfig +0 -11
index 0548db16c49d..9893c316da89 100644

Lines of this file are not shown. View the raw message.

tools/arch/x86/include/asm/cpufeatures.h +10 -2
index a7b5c5efcf3b..54ba20492ad1 100644

Lines of this file are not shown. View the raw message.

tools/arch/x86/include/asm/disabled-features.h +20 -1
index 5861d34f9771..d109c5ec967c 100644

Lines of this file are not shown. View the raw message.

tools/arch/x86/include/asm/inat.h +1 -1
index 877827b7c2c3..a61051400311 100644

Lines of this file are not shown. View the raw message.

tools/arch/x86/include/asm/insn.h +20 -8
index 52c6262e6bfd..636ec02793a7 100644

Lines of this file are not shown. View the raw message.

tools/arch/x86/include/asm/msr-index.h +13 -0
index 96973d197972..407de670cd60 100644

Lines of this file are not shown. View the raw message.

tools/arch/x86/lib/inat.c +1 -1
index 4f5ed49e1b4e..dfbcc6405941 100644

Lines of this file are not shown. View the raw message.

tools/arch/x86/lib/insn.c +174 -48

222 lines not on this page · raw message

tools/arch/x86/lib/memcpy_64.S +7 -7
index 1e299ac73c86..59cf2343f3d9 100644

Lines of this file are not shown. View the raw message.

tools/arch/x86/lib/memset_64.S +4 -4
index 0bfd26e4ca9e..d624f2bc42f1 100644

Lines of this file are not shown. View the raw message.

tools/include/asm/alternative-asm.h deleted +0 -10
deleted file mode 100644
index b54bd860dff6..000000000000

Lines of this file are not shown. View the raw message.

tools/include/asm/alternative.h new file +10 -0
new file mode 100644
index 000000000000..b54bd860dff6

Lines of this file are not shown. View the raw message.

tools/include/linux/kconfig.h new file +67 -0

67 lines not on this page · raw message

tools/include/linux/objtool.h +11 -3
index 577f51436cf9..662f19374bd9 100644

Lines of this file are not shown. View the raw message.

tools/objtool/Documentation/stack-validation.txt +9 -7
index 0542e46c7552..30f38fdc0d56 100644

Lines of this file are not shown. View the raw message.

tools/objtool/Makefile +0 -4
index 5cdb19036d7f..a43096f713c7 100644

Lines of this file are not shown. View the raw message.

tools/objtool/arch.h +8 -5
index 4a84c3081b8e..580ce1857585 100644

Lines of this file are not shown. View the raw message.

tools/objtool/arch/x86/decode.c +46 -12

58 lines not on this page · raw message

tools/objtool/arch/x86/include/arch_special.h +1 -1
index d818b2bffa02..14271cca0c74 100644

Lines of this file are not shown. View the raw message.

tools/objtool/builtin-check.c +5 -1
index c6d199bfd0ae..447a49c03abb 100644

Lines of this file are not shown. View the raw message.

tools/objtool/builtin-orc.c +1 -5
index 7b31121fa60b..508bdf6ae8dc 100644

Lines of this file are not shown. View the raw message.

tools/objtool/builtin.h +2 -1
index 85c979caa367..61d8d49dbc65 100644

Lines of this file are not shown. View the raw message.

tools/objtool/cfi.h +2 -0
index c7c59c6a44ee..f579802d7ec2 100644

Lines of this file are not shown. View the raw message.

tools/objtool/check.c +869 -271

1,140 lines not on this page · raw message

tools/objtool/check.h +28 -7
index 2804848e628e..7f34a7f9ca52 100644

Lines of this file are not shown. View the raw message.

tools/objtool/elf.c +351 -84

435 lines not on this page · raw message

tools/objtool/elf.h +14 -8
index e6890cc70a25..a1863eb35fbb 100644

Lines of this file are not shown. View the raw message.

tools/objtool/objtool.c +2 -0
index 9df0cd86d310..cb2c6acd9667 100644

Lines of this file are not shown. View the raw message.

tools/objtool/objtool.h +3 -2
index 4125d4578b23..bf64946e749b 100644

Lines of this file are not shown. View the raw message.

tools/objtool/orc_gen.c +175 -149

324 lines not on this page · raw message

tools/objtool/special.c +12 -10
index 1a2420febd08..aff0cee7bac1 100644

Lines of this file are not shown. View the raw message.

tools/objtool/sync-check.sh +13 -4
index 606a4b5e929f..4bbabaecab14 100755

Lines of this file are not shown. View the raw message.

tools/objtool/weak.c +1 -6
index 7843e9a7a72f..553ec9ce51ba 100644

Lines of this file are not shown. View the raw message.

tools/perf/check-headers.sh +11 -4
index 15ecb1803fb9..9f085aa09c97 100755

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

Part of the diff is not shown here. View the raw message.