summaryrefslogtreecommitdiffstats
path: root/arch/arm64/include/asm/ptrace.h
diff options
context:
space:
mode:
authorPratyush Anand <panand@redhat.com>2016-11-02 10:10:46 +0100
committerCatalin Marinas <catalin.marinas@arm.com>2016-11-07 19:15:21 +0100
commit9842ceae9fa8deae141533d52a6ead7666962c09 (patch)
tree773c1a5e348b02db818a7a9b271a27d05d4a7c9f /arch/arm64/include/asm/ptrace.h
parentarm64: introduce mm context flag to keep 32 bit task information (diff)
downloadlinux-9842ceae9fa8deae141533d52a6ead7666962c09.tar.xz
linux-9842ceae9fa8deae141533d52a6ead7666962c09.zip
arm64: Add uprobe support
This patch adds support for uprobe on ARM64 architecture. Unit tests for following have been done so far and they have been found working 1. Step-able instructions, like sub, ldr, add etc. 2. Simulation-able like ret, cbnz, cbz etc. 3. uretprobe 4. Reject-able instructions like sev, wfe etc. 5. trapped and abort xol path 6. probe at unaligned user address. 7. longjump test cases Currently it does not support aarch32 instruction probing. Signed-off-by: Pratyush Anand <panand@redhat.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64/include/asm/ptrace.h')
-rw-r--r--arch/arm64/include/asm/ptrace.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/arm64/include/asm/ptrace.h b/arch/arm64/include/asm/ptrace.h
index ada08b5b036d..513daf050e84 100644
--- a/arch/arm64/include/asm/ptrace.h
+++ b/arch/arm64/include/asm/ptrace.h
@@ -217,6 +217,14 @@ int valid_user_regs(struct user_pt_regs *regs, struct task_struct *task);
#include <asm-generic/ptrace.h>
+#define procedure_link_pointer(regs) ((regs)->regs[30])
+
+static inline void procedure_link_pointer_set(struct pt_regs *regs,
+ unsigned long val)
+{
+ procedure_link_pointer(regs) = val;
+}
+
#undef profile_pc
extern unsigned long profile_pc(struct pt_regs *regs);