1// SPDX-License-Identifier: GPL-2.0
2
3#include <linux/linkage.h>
4#include <linux/error-injection.h>
5#include <linux/kprobes.h>
6#include <linux/objtool.h>
7
8asmlinkage void just_return_func(void);
9
10asm(
11 ".text\n"
12 ".type just_return_func, @function\n"
13 ".globl just_return_func\n"
14 ASM_FUNC_ALIGN
15 "just_return_func:\n"
16 ANNOTATE_NOENDBR
17 ASM_RET
18 ".size just_return_func, .-just_return_func\n"
19);
20
21void override_function_with_return(struct pt_regs *regs)
22{
23 regs->ip = (unsigned long)&just_return_func;
24}
25NOKPROBE_SYMBOL(override_function_with_return);
26

source code of linux/arch/x86/lib/error-inject.c