summaryrefslogtreecommitdiff
path: root/arch/arm/include/asm/kprobes.h
diff options
context:
space:
mode:
authorWang Nan <wangnan0@huawei.com>2015-01-05 14:34:47 +0300
committerJon Medhurst <tixy@linaro.org>2015-01-14 15:24:52 +0300
commitbfc9657d752c47d59dc0bab85ebdc19cf60100dd (patch)
tree8fc4941e1571dd9b0d7d91703ce4ff67580984c4 /arch/arm/include/asm/kprobes.h
parent28a1899db30a9325498aef114055506286dc8010 (diff)
downloadlinux-bfc9657d752c47d59dc0bab85ebdc19cf60100dd.tar.xz
ARM: optprobes: execute instruction during restoring if possible.
This patch removes software emulation or simulation for most of probed instructions. If the instruction doesn't use PC relative addressing, it will be translated into following instructions in the restore code in code template: ldmia {r0 - r14} // restore all instruction except PC <instruction> // direct execute the probed instruction b next_insn // branch to next instruction. Signed-off-by: Wang Nan <wangnan0@huawei.com> Reviewed-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Signed-off-by: Jon Medhurst <tixy@linaro.org>
Diffstat (limited to 'arch/arm/include/asm/kprobes.h')
-rw-r--r--arch/arm/include/asm/kprobes.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/include/asm/kprobes.h b/arch/arm/include/asm/kprobes.h
index 50ff3bc7928e..3ea9be559726 100644
--- a/arch/arm/include/asm/kprobes.h
+++ b/arch/arm/include/asm/kprobes.h
@@ -57,6 +57,9 @@ extern __visible kprobe_opcode_t optprobe_template_call;
extern __visible kprobe_opcode_t optprobe_template_end;
extern __visible kprobe_opcode_t optprobe_template_sub_sp;
extern __visible kprobe_opcode_t optprobe_template_add_sp;
+extern __visible kprobe_opcode_t optprobe_template_restore_begin;
+extern __visible kprobe_opcode_t optprobe_template_restore_orig_insn;
+extern __visible kprobe_opcode_t optprobe_template_restore_end;
#define MAX_OPTIMIZED_LENGTH 4
#define MAX_OPTINSN_SIZE \