linux/arch/x86/lib
Borislav Petkov (AMD) 1f7e13d3e8 x86/retpoline: Do the necessary fixup to the Zen3/4 srso return thunk for !SRSO
Commit 0e11073247 upstream.

The srso_alias_untrain_ret() dummy thunk in the !CONFIG_MITIGATION_SRSO
case is there only for the altenative in CALL_UNTRAIN_RET to have
a symbol to resolve.

However, testing with kernels which don't have CONFIG_MITIGATION_SRSO
enabled, leads to the warning in patch_return() to fire:

  missing return thunk: srso_alias_untrain_ret+0x0/0x10-0x0: eb 0e 66 66 2e
  WARNING: CPU: 0 PID: 0 at arch/x86/kernel/alternative.c:826 apply_returns (arch/x86/kernel/alternative.c:826

Put in a plain "ret" there so that gcc doesn't put a return thunk in
in its place which special and gets checked.

In addition:

  ERROR: modpost: "srso_alias_untrain_ret" [arch/x86/kvm/kvm-amd.ko] undefined!
  make[2]: *** [scripts/Makefile.modpost:145: Module.symvers] Chyba 1
  make[1]: *** [/usr/src/linux-6.8.3/Makefile:1873: modpost] Chyba 2
  make: *** [Makefile:240: __sub-make] Chyba 2

since !SRSO builds would use the dummy return thunk as reported by
petr.pisar@atlas.cz, https://bugzilla.kernel.org/show_bug.cgi?id=218679.

Reported-by: kernel test robot <oliver.sang@intel.com>
Closes: https://lore.kernel.org/oe-lkp/202404020901.da75a60f-oliver.sang@intel.com
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Link: https://lore.kernel.org/all/202404020901.da75a60f-oliver.sang@intel.com/
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-04-10 16:19:43 +02:00
..
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
atomic64_32.c
atomic64_386_32.S x86: Prepare asm files for straight-line-speculation 2022-05-15 20:18:49 +02:00
atomic64_cx8_32.S x86: Prepare asm files for straight-line-speculation 2022-05-15 20:18:49 +02:00
cache-smp.c smp: Remove smp_call_function() and on_each_cpu() return values 2019-06-23 14:26:26 +02:00
checksum_32.S x86: Prepare asm files for straight-line-speculation 2022-05-15 20:18:49 +02:00
clear_page_64.S x86: Prepare asm files for straight-line-speculation 2022-05-15 20:18:49 +02:00
cmdline.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
cmpxchg8b_emu.S x86: Prepare asm files for straight-line-speculation 2022-05-15 20:18:49 +02:00
cmpxchg16b_emu.S x86: Prepare asm files for straight-line-speculation 2022-05-15 20:18:49 +02:00
copy_mc_64.S x86: Prepare asm files for straight-line-speculation 2022-05-15 20:18:49 +02:00
copy_mc.c iov_iter, x86: Be consistent about the __user tag on copy_mc_to_user() 2023-11-20 11:08:12 +01:00
copy_page_64.S x86: Prepare asm files for straight-line-speculation 2022-05-15 20:18:49 +02:00
copy_user_64.S x86: Prepare asm files for straight-line-speculation 2022-05-15 20:18:49 +02:00
cpu.c x86/lib/cpu: Address missing prototypes warning 2019-08-08 08:25:53 +02:00
csum-copy_64.S x86: Prepare asm files for straight-line-speculation 2022-05-15 20:18:49 +02:00
csum-partial_64.c x86/lib: Fix indentation issue, remove extra tab 2019-03-21 12:24:38 +01:00
csum-wrappers_64.c amd64: switch csum_partial_copy_generic() to new calling conventions 2020-08-20 15:45:22 -04:00
delay.c x86/delay: Fix the wrong asm constraint in delay_loop() 2022-06-09 10:22:45 +02:00
error-inject.c x86: Prepare inline-asm for straight-line-speculation 2022-05-15 20:18:50 +02:00
getuser.S x86: Prepare asm files for straight-line-speculation 2022-05-15 20:18:49 +02:00
hweight.S x86: Prepare asm files for straight-line-speculation 2022-05-15 20:18:49 +02:00
inat.c x86/insn: Add a __ignore_sync_check__ marker 2021-03-15 11:00:57 +01:00
insn-eval.c x86/entry_32: Fix segment exceptions 2022-07-29 17:25:33 +02:00
insn.c x86/insn: Use get_unaligned() instead of memcpy() 2021-11-18 19:16:30 +01:00
iomap_copy_64.S x86/asm: Fix an assembler warning with current binutils 2023-01-24 07:22:42 +01:00
iomem.c x86: explicitly align IO accesses in memcpy_{to,from}io 2019-02-01 09:07:48 -08:00
kaslr.c x86/kaslr: Fix incorrect i8254 outb() parameters 2019-01-11 21:35:47 +01:00
Makefile x86: Add support for 0x22/0x23 port I/O configuration space 2021-08-10 23:31:43 +02:00
memcpy_32.c
memcpy_64.S x86: Prepare asm files for straight-line-speculation 2022-05-15 20:18:49 +02:00
memmove_64.S x86: Use return-thunk in asm code 2022-07-23 12:54:00 +02:00
memset_64.S x86: Prepare asm files for straight-line-speculation 2022-05-15 20:18:49 +02:00
misc.c x86/lib: Fix overflow when counting digits 2024-01-25 14:52:32 -08:00
mmx_32.c x86: Fix various typos in comments 2021-03-18 15:31:53 +01:00
msr-reg-export.c
msr-reg.S x86: Prepare asm files for straight-line-speculation 2022-05-15 20:18:49 +02:00
msr-smp.c x86/msr: Fix wr/rdmsr_safe_regs_on_cpu() prototypes 2021-03-22 21:37:03 +01:00
msr.c x86/msr: Make locally used functions static 2021-04-08 11:57:40 +02:00
pc-conf-reg.c x86: Add support for 0x22/0x23 port I/O configuration space 2021-08-10 23:31:43 +02:00
putuser.S x86: Prepare asm files for straight-line-speculation 2022-05-15 20:18:49 +02:00
retpoline.S x86/retpoline: Do the necessary fixup to the Zen3/4 srso return thunk for !SRSO 2024-04-10 16:19:43 +02:00
string_32.c
strstr_32.c
usercopy_32.c docs/core-api/mm: fix user memory accessors formatting 2019-03-05 21:07:20 -08:00
usercopy_64.c x86: __memcpy_flushcache: fix wrong alignment if size > 2^32 2022-05-09 09:14:40 +02:00
usercopy.c x86/uaccess: Document copy_from_user_nmi() 2020-11-18 13:19:01 +01:00
x86-opcode-map.txt x86/insn: Add Control-flow Enforcement (CET) instructions to the opcode map 2020-03-26 12:21:40 +01:00