[PATCH 3/3] early kprobes: x86: don't try to recover ftraced instruction before ftrace get ready.

Wang Nan wangnan0 at huawei.com
Mon Mar 2 21:09:05 PST 2015

Before ftrace convertin instruction to nop, if an early kprobe is
registered then unregistered, without this patch its first bytes will
be replaced by head of NOP, which may confuse ftrace.

Actually, since we have a patch which convert ftrace entry to nop
when probing, this problem should never be triggered. Provide it for

Signed-off-by: Wang Nan <wangnan0 at huawei.com>
 arch/x86/kernel/kprobes/core.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/x86/kernel/kprobes/core.c b/arch/x86/kernel/kprobes/core.c
index 87beb64..c7d304d 100644
--- a/arch/x86/kernel/kprobes/core.c
+++ b/arch/x86/kernel/kprobes/core.c
@@ -225,6 +225,9 @@ __recover_probed_insn(kprobe_opcode_t *buf, unsigned long addr)
 	struct kprobe *kp;
 	unsigned long faddr;
+	if (!kprobes_on_ftrace_initialized)
+		return addr;
 	kp = get_kprobe((void *)addr);
 	faddr = ftrace_location(addr);

More information about the linux-arm-kernel mailing list