arm64: kprobe: protect/rename few definitions to be reused by uprobe
authorPratyush Anand <panand@redhat.com>
Wed, 2 Nov 2016 09:10:41 +0000 (14:40 +0530)
committerCatalin Marinas <catalin.marinas@arm.com>
Mon, 7 Nov 2016 18:15:20 +0000 (18:15 +0000)
commitc2249707ee53b5dd696f0fae8543a754684ea04a
treead26181a1ad57978dcf944fa5f2959961833a9cd
parent1404d6f13e47c42f155e3c6a611b1bf4dd35dde9
arm64: kprobe: protect/rename few definitions to be reused by uprobe

decode-insn code has to be reused by arm64 uprobe implementation as well.
Therefore, this patch protects some portion of kprobe code and renames few
other, so that decode-insn functionality can be reused by uprobe even when
CONFIG_KPROBES is not defined.

kprobe_opcode_t and struct arch_specific_insn are also defined by
linux/kprobes.h, when CONFIG_KPROBES is not defined. So, protect these
definitions in asm/probes.h.

linux/kprobes.h already includes asm/kprobes.h. Therefore, remove inclusion
of asm/kprobes.h from decode-insn.c.

There are some definitions like kprobe_insn and kprobes_handler_t etc can
be re-used by uprobe. So, it would be better to remove 'k' from their
names.

struct arch_specific_insn is specific to kprobe. Therefore, introduce a new
struct arch_probe_insn which will be common for both kprobe and uprobe, so
that decode-insn code can be shared. Modify kprobe code accordingly.

Function arm_probe_decode_insn() will be needed by uprobe as well. So make
it global.

Signed-off-by: Pratyush Anand <panand@redhat.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/include/asm/probes.h
arch/arm64/kernel/probes/decode-insn.c
arch/arm64/kernel/probes/decode-insn.h
arch/arm64/kernel/probes/kprobes.c