Signed-off-by: zhang-mingyi66 <zhangmingyi5@huawei.com> (cherry picked from commit c93fa88cb0c11cd67c85e48654dc403447bc9df0)
33 lines
1.2 KiB
Diff
33 lines
1.2 KiB
Diff
From 81ac790dc831a5b753b310138f2201f87b55169b Mon Sep 17 00:00:00 2001
|
|
From: Shuyi Cheng <chengshuyi@linux.alibaba.com>
|
|
Date: Sun, 8 Sep 2024 17:23:53 +0800
|
|
Subject: [PATCH] libbpf: Fixed getting wrong return address on arm64
|
|
architecture
|
|
|
|
ARM64 has a separate lr register to store the return address, so here
|
|
you only need to read the lr register to get the return address, no need
|
|
to dereference it again.
|
|
|
|
Signed-off-by: Shuyi Cheng <chengshuyi@linux.alibaba.com>
|
|
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
|
|
Link: https://lore.kernel.org/bpf/1725787433-77262-1-git-send-email-chengshuyi@linux.alibaba.com
|
|
---
|
|
src/bpf_tracing.h | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/src/bpf_tracing.h b/src/bpf_tracing.h
|
|
index 4eab132a9..aa3b04f55 100644
|
|
--- a/src/bpf_tracing.h
|
|
+++ b/src/bpf_tracing.h
|
|
@@ -522,7 +522,7 @@ struct pt_regs;
|
|
#define BPF_KPROBE_READ_RET_IP(ip, ctx) ({ (ip) = (ctx)->link; })
|
|
#define BPF_KRETPROBE_READ_RET_IP BPF_KPROBE_READ_RET_IP
|
|
|
|
-#elif defined(bpf_target_sparc)
|
|
+#elif defined(bpf_target_sparc) || defined(bpf_target_arm64)
|
|
|
|
#define BPF_KPROBE_READ_RET_IP(ip, ctx) ({ (ip) = PT_REGS_RET(ctx); })
|
|
#define BPF_KRETPROBE_READ_RET_IP BPF_KPROBE_READ_RET_IP
|
|
|
|
|