From: Song Liu Date: Fri, 2 Nov 2018 17:16:16 +0000 (-0700) Subject: bpf: show real jited address in bpf_prog_info->jited_ksyms X-Git-Tag: v4.20-rc2~33^2~12^2~1^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=de57e99ceb65d0d7775cc14a8ba5931d7de1d708;p=thirdparty%2Flinux.git bpf: show real jited address in bpf_prog_info->jited_ksyms Currently, jited_ksyms in bpf_prog_info shows page addresses of jited bpf program. The main reason here is to not expose randomized start address. However, this is not ideal for detailed profiling (find hot instructions from stack traces). This patch replaces the page address with real prog start address. This change is OK because bpf_prog_get_info_by_fd() is only available to root. Signed-off-by: Song Liu Signed-off-by: Daniel Borkmann --- diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c index ccb93277aae2c..34a9eef5992c2 100644 --- a/kernel/bpf/syscall.c +++ b/kernel/bpf/syscall.c @@ -2172,7 +2172,6 @@ static int bpf_prog_get_info_by_fd(struct bpf_prog *prog, user_ksyms = u64_to_user_ptr(info.jited_ksyms); for (i = 0; i < ulen; i++) { ksym_addr = (ulong) prog->aux->func[i]->bpf_func; - ksym_addr &= PAGE_MASK; if (put_user((u64) ksym_addr, &user_ksyms[i])) return -EFAULT; }