1 | // SPDX-License-Identifier: GPL-2.0+ |
---|---|
2 | |
3 | #include <linux/error-injection.h> |
4 | #include <linux/kprobes.h> |
5 | #include <linux/uaccess.h> |
6 | |
7 | void override_function_with_return(struct pt_regs *regs) |
8 | { |
9 | /* |
10 | * Emulate 'blr'. 'regs' represents the state on entry of a predefined |
11 | * function in the kernel/module, captured on a kprobe. We don't need |
12 | * to worry about 32-bit userspace on a 64-bit kernel. |
13 | */ |
14 | regs_set_return_ip(regs, regs->link); |
15 | } |
16 | NOKPROBE_SYMBOL(override_function_with_return); |
17 |