]> www.infradead.org Git - users/jedix/linux-maple.git/commit
libbpf: don't adjust USDT semaphore address if .stapsdt.base addr is missing
authorAndrii Nakryiko <andrii@kernel.org>
Thu, 21 Nov 2024 22:45:58 +0000 (14:45 -0800)
committerAlexei Starovoitov <ast@kernel.org>
Mon, 2 Dec 2024 16:41:17 +0000 (08:41 -0800)
commit98ebe5ef6f5c4517ba92fb3e56f95827ebea83fd
tree9726e86e333e3483dd13d25af4806df8a49bc218
parent3eb87b81e64e875eb6f970a02621145e4a2ff501
libbpf: don't adjust USDT semaphore address if .stapsdt.base addr is missing

USDT ELF note optionally can record an offset of .stapsdt.base, which is
used to make adjustments to USDT target attach address. Currently,
libbpf will do this address adjustment unconditionally if it finds
.stapsdt.base ELF section in target binary. But there is a corner case
where .stapsdt.base ELF section is present, but specific USDT note
doesn't reference it. In such case, libbpf will basically just add base
address and end up with absolutely incorrect USDT target address.

This adjustment has to be done only if both .stapsdt.sema section is
present and USDT note is recording a reference to it.

Fixes: 74cc6311cec9 ("libbpf: Add USDT notes parsing and resolution logic")
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Link: https://lore.kernel.org/r/20241121224558.796110-1-andrii@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/lib/bpf/usdt.c