xref: /openbmc/linux/arch/x86/lib/error-inject.c (revision 1934dc9a)
1540adea3SMasami Hiramatsu // SPDX-License-Identifier: GPL-2.0
2540adea3SMasami Hiramatsu 
3b17c2baaSPeter Zijlstra #include <linux/linkage.h>
4540adea3SMasami Hiramatsu #include <linux/error-injection.h>
5540adea3SMasami Hiramatsu #include <linux/kprobes.h>
63e3f0695SPeter Zijlstra #include <linux/objtool.h>
7540adea3SMasami Hiramatsu 
8540adea3SMasami Hiramatsu asmlinkage void just_return_func(void);
9540adea3SMasami Hiramatsu 
10540adea3SMasami Hiramatsu asm(
11c03e2750SAndi Kleen 	".text\n"
12540adea3SMasami Hiramatsu 	".type just_return_func, @function\n"
1301684e72SArnd Bergmann 	".globl just_return_func\n"
14*1934dc9aSPeter Zijlstra 	ASM_FUNC_ALIGN
15540adea3SMasami Hiramatsu 	"just_return_func:\n"
163e3f0695SPeter Zijlstra 		ANNOTATE_NOENDBR
17b17c2baaSPeter Zijlstra 		ASM_RET
18540adea3SMasami Hiramatsu 	".size just_return_func, .-just_return_func\n"
19540adea3SMasami Hiramatsu );
20540adea3SMasami Hiramatsu 
override_function_with_return(struct pt_regs * regs)21540adea3SMasami Hiramatsu void override_function_with_return(struct pt_regs *regs)
22540adea3SMasami Hiramatsu {
23540adea3SMasami Hiramatsu 	regs->ip = (unsigned long)&just_return_func;
24540adea3SMasami Hiramatsu }
25540adea3SMasami Hiramatsu NOKPROBE_SYMBOL(override_function_with_return);
26