arm64: kprobe: protect/rename few definitions to be reused by uprobe 43/149943/1
authorPratyush Anand <panand@redhat.com>
Wed, 2 Nov 2016 09:10:41 +0000 (14:40 +0530)
committerKarol Lewandowski <k.lewandowsk@samsung.com>
Wed, 13 Sep 2017 16:00:58 +0000 (18:00 +0200)
commit5fff3371ffdaac7e1784be42e4f8e6bb49254be1
tree116ea35f0b32d540975d2f6e73caf601ec3e71af
parenta94335bacadef9ce6bfed88fc8778821529d10bf
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>
[ Mainline commit c224970 ]
Signed-off-by: Karol Lewandowski <k.lewandowsk@samsung.com>
Change-Id: Ibce8abdc439a53bfe4c448ed05d43f5e53c02144
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