linux/tools
Alan Maguire d003ff1f0a libbpf: Add identical pointer detection to btf_dedup_is_equiv()
[ Upstream commit 8e64c387c9 ]

Recently as a side-effect of

commit ac053946f5 ("compiler.h: introduce TYPEOF_UNQUAL() macro")

issues were observed in deduplication between modules and kernel BTF
such that a large number of kernel types were not deduplicated so
were found in module BTF (task_struct, bpf_prog etc).  The root cause
appeared to be a failure to dedup struct types, specifically those
with members that were pointers with __percpu annotations.

The issue in dedup is at the point that we are deduplicating structures,
we have not yet deduplicated reference types like pointers.  If multiple
copies of a pointer point at the same (deduplicated) integer as in this
case, we do not see them as identical.  Special handling already exists
to deal with structures and arrays, so add pointer handling here too.

Reported-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Alan Maguire <alan.maguire@oracle.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20250429161042.2069678-1-alan.maguire@oracle.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-06-27 11:11:32 +01:00
..
accounting delayacct: track delays from IRQ/SOFTIRQ 2023-04-18 16:39:34 -07:00
arch x86/insn: Fix opcode map (!REX2) superscript tags 2025-06-19 15:31:28 +02:00
bootconfig tools/bootconfig: Fix the wrong format specifier 2025-02-08 09:58:00 +01:00
bpf tools/resolve_btfids: Fix build when cross compiling kernel with clang. 2025-06-19 15:32:33 +02:00
build tools/build: Don't pass test log files to linker 2025-05-29 11:02:08 +02:00
certs tools/certs: Add print-cert-tbs-hash.sh 2022-05-23 18:47:49 +03:00
cgroup proc: rewrite stable_page_flags() 2024-04-25 20:56:15 -07:00
counter tools/counter: Remove unneeded semicolon 2023-12-20 11:43:31 -05:00
crypto crypto: tools/ccp - Remove unused variable 2024-08-30 18:22:30 +08:00
debugging tools: Add new "test" taint to kernel-chktaint 2022-09-07 14:51:12 -06:00
firewire treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
firmware Driver Core and debugfs changes for 5.3-rc1 2019-07-12 12:24:03 -07:00
gpio gpio: sloppy-logic-analyzer remove reference to rcu_momentary_dyntick_idle() 2024-12-05 14:01:28 +01:00
hv tools: hv: Fix a complier warning in the fcopy uio daemon 2024-12-27 14:02:15 +01:00
iio tools: iio: rm .*.cmd when make clean 2024-09-05 19:27:13 +01:00
include bpf: Allow pre-ordering for bpf cgroup progs 2025-05-29 11:02:17 +02:00
kvm/kvm_stat tools/kvm_stat: use canonical ftrace path 2023-03-29 06:52:08 -04:00
laptop change email address for Pali Rohár 2020-04-10 15:36:22 -07:00
leds .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
lib libbpf: Add identical pointer detection to btf_dedup_is_equiv() 2025-06-27 11:11:32 +01:00
memory-model tools/memory-model: simple.txt: Fix stale reference to recipes-pairs.txt 2024-09-13 23:56:44 -07:00
mm tools/mm: fix compile error 2024-11-14 22:43:48 -08:00
net tools: ynl-gen: validate 0 len strings from kernel 2025-05-29 11:03:12 +02:00
objtool objtool/rust: relax slice condition to cover more noreturn Rust functions 2025-06-19 15:32:33 +02:00
pci tools: PCI: Remove unused BILLION macro 2024-09-13 22:37:06 +00:00
pcmcia .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
perf perf callchain: Always populate the addr_location map when adding IP 2025-06-19 15:32:08 +02:00
power tools/power turbostat: Fix AMD package-energy reporting 2025-06-19 15:32:21 +02:00
rcu tools/rcu: Remove RCU Tasks Rude asynchronous APIs from rcu-updaters.sh 2024-07-29 07:39:32 +05:30
sched_ext tools/sched_ext: Add helper to check task migration state 2025-03-22 12:54:28 -07:00
scripts tools: Override makefile ARCH variable if defined, but empty 2024-12-14 20:03:15 +01:00
sound ASoC: dapm-graph: set fill colour of turned on nodes 2025-03-22 12:54:20 -07:00
spi spi: spidev_fdx: Fix the wrong format specifier 2024-09-04 16:50:33 +01:00
testing selftests: net: build net/lib dependency in all target 2025-06-19 15:32:18 +02:00
thermal tools/thermal/tmon: Fix compilation warning for wrong format 2024-01-02 09:33:19 +01:00
time treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
tracing rtla/timerlat_top: Abort event processing on second signal 2025-02-21 14:01:25 +01:00
usb usbip: tools: Fix detach_port() invalid port error path 2024-10-29 04:23:23 +01:00
verification verification/dot2: Improve dot parser robustness 2024-12-14 20:04:03 +01:00
virtio Fix typo in vringh_test.c 2024-11-06 04:40:07 -05:00
wmi treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
workqueue workqueue: remove unnecessary import and function in wq_monitor.py 2024-03-25 10:11:32 -10:00
writeback writeback: add wb_monitor.py script to monitor writeback info on bdi 2024-05-05 17:53:51 -07:00
Makefile sched_ext: Add scx_simple and scx_example_qmap example schedulers 2024-06-18 10:09:17 -10:00