diff options
author | Brian Gerst <brgerst@gmail.com> | 2023-06-24 00:55:29 +0200 |
---|---|---|
committer | Peter Zijlstra <peterz@infradead.org> | 2023-07-10 09:52:25 +0200 |
commit | 3aec4ecb3d1f313a8ab985df7cab07c4af81f478 (patch) | |
tree | b7866bb1960211cf8f1b4f2cbd1263fa309fc661 /arch/x86/include/asm | |
parent | x86/32: Remove schedule_tail_wrapper() (diff) | |
download | linux-3aec4ecb3d1f313a8ab985df7cab07c4af81f478.tar.xz linux-3aec4ecb3d1f313a8ab985df7cab07c4af81f478.zip |
x86: Rewrite ret_from_fork() in C
When kCFI is enabled, special handling is needed for the indirect call
to the kernel thread function. Rewrite the ret_from_fork() function in
C so that the compiler can properly handle the indirect call.
Suggested-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Brian Gerst <brgerst@gmail.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
Link: https://lkml.kernel.org/r/20230623225529.34590-3-brgerst@gmail.com
Diffstat (limited to 'arch/x86/include/asm')
-rw-r--r-- | arch/x86/include/asm/switch_to.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/x86/include/asm/switch_to.h b/arch/x86/include/asm/switch_to.h index 5c91305d09d2..f42dbf17f52b 100644 --- a/arch/x86/include/asm/switch_to.h +++ b/arch/x86/include/asm/switch_to.h @@ -12,7 +12,9 @@ struct task_struct *__switch_to_asm(struct task_struct *prev, __visible struct task_struct *__switch_to(struct task_struct *prev, struct task_struct *next); -asmlinkage void ret_from_fork(void); +asmlinkage void ret_from_fork_asm(void); +__visible void ret_from_fork(struct task_struct *prev, struct pt_regs *regs, + int (*fn)(void *), void *fn_arg); /* * This is the structure pointed to by thread.sp for an inactive task. The |