]> www.infradead.org Git - users/jedix/linux-maple.git/commit
bpf, bpftool: Fix incorrect disasm pc
authorLeon Hwang <leon.hwang@linux.dev>
Thu, 31 Oct 2024 15:28:44 +0000 (23:28 +0800)
committerAndrii Nakryiko <andrii@kernel.org>
Fri, 1 Nov 2024 19:31:44 +0000 (12:31 -0700)
commit4d99e509c161f8610de125202c648fa4acd00541
tree88876abd37a910cee1893423c013164294f27b1e
parente5e4799e2ac3619a10a9e6db7d2a51d7cc6a69ef
bpf, bpftool: Fix incorrect disasm pc

This patch addresses the bpftool issue "Wrong callq address displayed"[0].

The issue stemmed from an incorrect program counter (PC) value used during
disassembly with LLVM or libbfd.

For LLVM: The PC argument must represent the actual address in the kernel
to compute the correct relative address.

For libbfd: The relative address can be adjusted by adding func_ksym within
the custom info->print_address_func to yield the correct address.

Links:
[0] https://github.com/libbpf/bpftool/issues/109

Changes:
v2 -> v3:
  * Address comment from Quentin:
    * Remove the typedef.

v1 -> v2:
  * Fix the broken libbfd disassembler.

Fixes: e1947c750ffe ("bpftool: Refactor disassembler for JIT-ed programs")
Signed-off-by: Leon Hwang <leon.hwang@linux.dev>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Tested-by: Quentin Monnet <qmo@kernel.org>
Reviewed-by: Quentin Monnet <qmo@kernel.org>
Acked-by: Yonghong Song <yonghong.song@linux.dev>
Link: https://lore.kernel.org/bpf/20241031152844.68817-1-leon.hwang@linux.dev
tools/bpf/bpftool/jit_disasm.c