error-injection: Separate error-injection from kprobe
Since error-injection framework is not limited to be used by kprobes, nor bpf. Other kernel subsystems can use it freely for checking safeness of error-injection, e.g. livepatch, ftrace etc. So this separate error-injection framework from kprobes. Some differences has been made: - "kprobe" word is removed from any APIs/structures. - BPF_ALLOW_ERROR_INJECTION() is renamed to ALLOW_ERROR_INJECTION() since it is not limited for BPF too. - CONFIG_FUNCTION_ERROR_INJECTION is the config item of this feature. It is automatically enabled if the arch supports error injection feature for kprobe or ftrace etc. Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org> Reviewed-by: Josef Bacik <jbacik@fb.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:

committed by
Alexei Starovoitov

parent
66665ad2f1
commit
540adea380
19
arch/x86/lib/error-inject.c
Normal file
19
arch/x86/lib/error-inject.c
Normal file
@@ -0,0 +1,19 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
#include <linux/error-injection.h>
|
||||
#include <linux/kprobes.h>
|
||||
|
||||
asmlinkage void just_return_func(void);
|
||||
|
||||
asm(
|
||||
".type just_return_func, @function\n"
|
||||
"just_return_func:\n"
|
||||
" ret\n"
|
||||
".size just_return_func, .-just_return_func\n"
|
||||
);
|
||||
|
||||
void override_function_with_return(struct pt_regs *regs)
|
||||
{
|
||||
regs->ip = (unsigned long)&just_return_func;
|
||||
}
|
||||
NOKPROBE_SYMBOL(override_function_with_return);
|
Reference in New Issue
Block a user