| 1 | |
| 2 |
|
| 3 | #include <linux/linkage.h>
|
| 4 | #include <linux/error-injection.h>
|
| 5 | #include <linux/kprobes.h>
|
| 6 | #include <linux/objtool.h>
|
| 7 |
|
| 8 | asmlinkage void just_return_func(void);
|
| 9 |
|
| 10 | asm(
|
| 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 "\n"
|
| 17 | ASM_RET
|
| 18 | ".size just_return_func, .-just_return_func\n"
|
| 19 | );
|
| 20 |
|
| 21 | void override_function_with_return(struct pt_regs *regs)
|
| 22 | {
|
| 23 | regs->ip = (unsigned long)&just_return_func;
|
| 24 | }
|
| 25 | NOKPROBE_SYMBOL(override_function_with_return);
|