mirror-linux/tools/testing/selftests
Andrii Nakryiko e5c5cb47a9 libbpf: Fix btf_dump's packed struct determination
[ Upstream commit 4fb877aaa1 ]

Fix bug in btf_dump's logic of determining if a given struct type is
packed or not. The notion of "natural alignment" is not needed and is
even harmful in this case, so drop it altogether. The biggest difference
in btf_is_struct_packed() compared to its original implementation is
that we don't really use btf__align_of() to determine overall alignment
of a struct type (because it could be 1 for both packed and non-packed
struct, depending on specifci field definitions), and just use field's
actual alignment to calculate whether any field is requiring packing or
struct's size overall necessitates packing.

Add two simple test cases that demonstrate the difference this change
would make.

Fixes: ea2ce1ba99 ("libbpf: Fix BTF-to-C converter's padding logic")
Reported-by: Eduard Zingerman <eddyz87@gmail.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Eduard Zingerman <eddyz87@gmail.com>
Link: https://lore.kernel.org/bpf/20221215183605.4149488-1-andrii@kernel.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-04-06 12:10:58 +02:00
..
alsa selftests: alsa: Handle pkg-config failure more gracefully 2022-05-31 18:02:18 +02:00
amd-pstate cpufreq: amd-pstate: Add explanation for X86_AMD_PSTATE_UT 2022-10-05 11:05:18 -06:00
arm64 selftests: arm64: Fix incorrect kernel headers search path 2023-03-10 09:34:16 +01:00
bpf libbpf: Fix btf_dump's packed struct determination 2023-04-06 12:10:58 +02:00
breakpoints
capabilities
cgroup cgroup/cpuset: Fix wrong check in update_parent_subparts_cpumask() 2023-02-09 11:28:15 +01:00
clone3 selftests: clone3: Fix incorrect kernel headers search path 2023-03-10 09:34:16 +01:00
core selftests: core: Fix incorrect kernel headers search path 2023-03-10 09:34:15 +01:00
cpu-hotplug selftests/cpu-hotplug: Add log info when test success 2022-10-05 11:05:18 -06:00
cpufreq
damon selftest/damon: add a test for duplicate context dirs creation 2022-10-03 14:03:06 -07:00
dma selftests dma: fix compile error for dma_map_benchmark 2022-06-16 14:03:21 -06:00
dmabuf-heaps selftests: dmabuf-heaps: Fix incorrect kernel headers search path 2023-03-10 09:34:18 +01:00
drivers selftests: drivers: Fix incorrect kernel headers search path 2023-03-10 09:34:18 +01:00
efivarfs selftests/efivarfs: Add checking of the test return value 2022-12-31 13:31:56 +01:00
exec linux-kselftest-next-5.18-rc1 2022-03-23 12:53:00 -07:00
filesystems selftests: filesystems: Fix incorrect kernel headers search path 2023-03-10 09:34:17 +01:00
firmware selftests: firmware: Add firmware upload selftests 2022-04-29 16:49:36 +02:00
fpu
ftrace selftests/ftrace: Fix eprobe syntax test case to check filter support 2023-03-10 09:34:15 +01:00
futex selftests: futex: Fix incorrect kernel headers search path 2023-03-10 09:34:18 +01:00
gpio selftests: gpio: Fix incorrect kernel headers search path 2023-03-10 09:34:17 +01:00
ia64
intel_pstate selftests/intel_pstate: fix build for ARCH=x86_64 2022-10-18 14:13:19 -06:00
ipc selftests: ipc: Fix incorrect kernel headers search path 2023-03-10 09:34:18 +01:00
ir kselftests/ir : Improve readability of modprobe error message 2022-05-16 13:34:19 -06:00
kcmp selftests: kcmp: Fix incorrect kernel headers search path 2023-03-10 09:34:16 +01:00
kexec selftests/kexec: fix build for ARCH=x86_64 2022-10-18 14:13:25 -06:00
kmod
kselftest selftests/kselftest/runner.sh: Pass optional command parameters in environment 2022-02-23 17:14:36 -07:00
kvm selftests: kvm: move declaration at the beginning of main() 2023-02-25 11:25:40 +01:00
landlock selftests/landlock: Test ptrace as much as possible with Yama 2023-03-10 09:34:10 +01:00
lib
livepatch Merge branch 'for-6.1/sysfs-patched-object' into for-linus 2022-10-05 13:00:03 +02:00
lkdtm lkdtm: Update tests for memcpy() run-time warnings 2022-09-07 16:37:27 -07:00
locking
media_tests selftests: media_tests: Fix incorrect kernel headers search path 2023-03-10 09:34:16 +01:00
membarrier selftests: membarrier: Fix incorrect kernel headers search path 2023-03-10 09:34:16 +01:00
memfd selftests/memfd: clean up mapping in mfd_fail_write 2022-02-26 09:51:17 -08:00
memory-hotplug selftests/memory-hotplug: Remove the redundant warning information 2022-10-18 14:21:18 -06:00
mincore
mount
mount_setattr selftests: mount_setattr: Fix incorrect kernel headers search path 2023-03-10 09:34:18 +01:00
move_mount_set_group selftests: move_mount_set_group: Fix incorrect kernel headers search path 2023-03-10 09:34:17 +01:00
mqueue selftests: mqueue: drop duplicate min definition 2022-04-19 19:28:47 -06:00
nci
net act_mirred: use the backlog for nested calls to mirred ingress 2023-03-30 12:49:20 +02:00
netfilter selftests: nft_nat: ensuring the listening side is up before starting the client 2023-03-17 08:50:23 +01:00
nolibc selftests/nolibc: Avoid generated files being committed 2022-08-31 05:17:45 -07:00
nsfs
ntb
openat2
perf_events selftests: perf_events: Fix incorrect kernel headers search path 2023-03-10 09:34:18 +01:00
pid_namespace selftests: pid_namespace: Fix incorrect kernel headers search path 2023-03-10 09:34:16 +01:00
pidfd selftests: pidfd: Fix incorrect kernel headers search path 2023-03-10 09:34:16 +01:00
powerpc selftests/powerpc: Fix incorrect kernel headers search path 2023-03-10 09:34:15 +01:00
prctl
proc proc: fix PIE proc-empty-vm, proc-pid-vm tests 2023-01-24 07:24:33 +01:00
pstore
ptp selftests: ptp: Fix incorrect kernel headers search path 2023-03-10 09:34:17 +01:00
ptrace
rcutorture torture: Create kvm-check-branches.sh output in proper location 2022-06-21 15:57:04 -07:00
resctrl selftests/resctrl: Fix null pointer dereference on open failed 2022-04-26 09:20:00 -06:00
rlimits
rseq selftests: rseq: Fix incorrect kernel headers search path 2023-03-10 09:34:17 +01:00
rtc selftests/rtc: continuously read RTC in a loop for 30s 2022-02-25 17:00:51 -07:00
safesetid LSM: SafeSetID: add setgroups() testing to selftest 2022-07-15 18:24:42 +00:00
sched selftests: sched: Fix incorrect kernel headers search path 2023-03-10 09:34:15 +01:00
seccomp selftests: seccomp: Fix incorrect kernel headers search path 2023-03-10 09:34:18 +01:00
sgx selftests/sgx: Ignore OpenSSL 3.0 deprecated functions warning 2022-08-15 16:50:07 -06:00
sigaltstack
size
sparc64
splice
static_keys
sync selftests: sync: Fix incorrect kernel headers search path 2023-03-10 09:34:17 +01:00
syscall_user_dispatch
sysctl selftests/sysctl: add sysctl macro test 2022-05-03 10:15:07 +02:00
tc-testing net/sched: Retire tcindex classifier 2023-03-11 13:55:16 +01:00
timens Revert "selftests/timens: add a test for vfork+exit" 2022-09-13 10:38:43 -07:00
timers selftests: timers: clocksource-switch: adapt to kselftest framework 2022-07-14 14:36:52 -06:00
tmpfs
tpm2 selftest: tpm2: Add Client.__del__() to close /dev/tpm* handle 2022-10-05 00:25:56 +03:00
uevent
user
user_events selftests: user_events: Fix incorrect kernel headers search path 2023-03-10 09:34:17 +01:00
vDSO selftests/vDSO: fix array_size.cocci warning 2022-04-04 13:27:11 -06:00
vm selftests: vm: Fix incorrect kernel headers search path 2023-03-10 09:34:18 +01:00
watchdog
wireguard wireguard: selftests: do not install headers on UML 2022-09-20 11:26:14 -07:00
x86 selftests/x86/amx: Add a ptrace test 2023-03-30 12:49:21 +02:00
zram
.gitignore selftests: add kselftest_install to .gitignore 2022-03-03 15:16:57 -07:00
Makefile selftests: use printf instead of echo -ne 2023-03-10 09:33:27 +01:00
gen_kselftest_tar.sh
kselftest.h selftests: Provide local define of __cpuid_count() 2022-04-25 15:12:36 -06:00
kselftest_deps.sh selftests: Make the usage formatting consistent in kselftest_deps.sh 2022-06-27 14:14:27 -06:00
kselftest_harness.h selftests/harness: Pass variant to teardown 2022-04-04 13:37:48 -06:00
kselftest_install.sh
kselftest_module.h selftest: Taint kernel when test module loaded 2022-07-11 16:58:11 -06:00
lib.mk selftests: fix LLVM build for i386 and x86_64 2023-03-22 13:33:44 +01:00
run_kselftest.sh