aboutsummaryrefslogtreecommitdiff
path: root/arch/x86/entry/thunk_64.S
diff options
context:
space:
mode:
authorGravatar Josh Poimboeuf <jpoimboe@kernel.org> 2024-01-03 19:36:26 +0100
committerGravatar Borislav Petkov (AMD) <bp@alien8.de> 2024-02-12 11:42:15 +0100
commit4461438a8405e800f90e0e40409e5f3d07eed381 (patch)
tree1c660616f321919a56e80cac4fd9e0e980065a68 /arch/x86/entry/thunk_64.S
parentx86/bugs: Rename CONFIG_RETHUNK => CONFIG_MITIGATION_RETHUNK (diff)
downloadlinux-4461438a8405e800f90e0e40409e5f3d07eed381.tar.gz
linux-4461438a8405e800f90e0e40409e5f3d07eed381.tar.bz2
linux-4461438a8405e800f90e0e40409e5f3d07eed381.zip
x86/retpoline: Ensure default return thunk isn't used at runtime
Make sure the default return thunk is not used after all return instructions have been patched by the alternatives because the default return thunk is insufficient when it comes to mitigating Retbleed or SRSO. Fix based on an earlier version by David Kaplan <david.kaplan@amd.com>. [ bp: Fix the compilation error of warn_thunk_thunk being an invisible symbol, hoist thunk macro into calling.h ] Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org> Co-developed-by: Borislav Petkov (AMD) <bp@alien8.de> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Link: https://lore.kernel.org/r/20231010171020.462211-4-david.kaplan@amd.com Link: https://lore.kernel.org/r/20240104132446.GEZZaxnrIgIyat0pqf@fat_crate.local
Diffstat (limited to 'arch/x86/entry/thunk_64.S')
-rw-r--r--arch/x86/entry/thunk_64.S33
1 files changed, 0 insertions, 33 deletions
diff --git a/arch/x86/entry/thunk_64.S b/arch/x86/entry/thunk_64.S
index 416b400f39db..119ebdc3d362 100644
--- a/arch/x86/entry/thunk_64.S
+++ b/arch/x86/entry/thunk_64.S
@@ -9,39 +9,6 @@
#include "calling.h"
#include <asm/asm.h>
- /* rdi: arg1 ... normal C conventions. rax is saved/restored. */
- .macro THUNK name, func
-SYM_FUNC_START(\name)
- pushq %rbp
- movq %rsp, %rbp
-
- pushq %rdi
- pushq %rsi
- pushq %rdx
- pushq %rcx
- pushq %rax
- pushq %r8
- pushq %r9
- pushq %r10
- pushq %r11
-
- call \func
-
- popq %r11
- popq %r10
- popq %r9
- popq %r8
- popq %rax
- popq %rcx
- popq %rdx
- popq %rsi
- popq %rdi
- popq %rbp
- RET
-SYM_FUNC_END(\name)
- _ASM_NOKPROBE(\name)
- .endm
-
THUNK preempt_schedule_thunk, preempt_schedule
THUNK preempt_schedule_notrace_thunk, preempt_schedule_notrace
EXPORT_SYMBOL(preempt_schedule_thunk)