arm64: Add support for function error injection
Inspired by the commit 7cd01b08d3
("powerpc: Add support for function
error injection"), this patch supports function error injection for
Arm64.
This patch mainly support two functions: one is regs_set_return_value()
which is used to overwrite the return value; the another function is
override_function_with_return() which is to override the probed
function returning and jump to its caller.
Reviewed-by: Masami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: Leo Yan <leo.yan@linaro.org>
Signed-off-by: Will Deacon <will@kernel.org>
This commit is contained in:
18
arch/arm64/lib/error-inject.c
Normal file
18
arch/arm64/lib/error-inject.c
Normal file
@@ -0,0 +1,18 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
#include <linux/error-injection.h>
|
||||
#include <linux/kprobes.h>
|
||||
|
||||
void override_function_with_return(struct pt_regs *regs)
|
||||
{
|
||||
/*
|
||||
* 'regs' represents the state on entry of a predefined function in
|
||||
* the kernel/module and which is captured on a kprobe.
|
||||
*
|
||||
* When kprobe returns back from exception it will override the end
|
||||
* of probed function and directly return to the predefined
|
||||
* function's caller.
|
||||
*/
|
||||
instruction_pointer_set(regs, procedure_link_pointer(regs));
|
||||
}
|
||||
NOKPROBE_SYMBOL(override_function_with_return);
|
Reference in New Issue
Block a user