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
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
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
filesystems selftests: filesystems: Fix incorrect kernel headers search path 2023-03-10 09:34:17 +01:00
firmware
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
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
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
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
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
resctrl
rlimits
rseq selftests: rseq: Fix incorrect kernel headers search path 2023-03-10 09:34:17 +01:00
rtc
safesetid
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
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
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
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
Makefile selftests: use printf instead of echo -ne 2023-03-10 09:33:27 +01:00
gen_kselftest_tar.sh
kselftest.h
kselftest_deps.sh
kselftest_harness.h
kselftest_install.sh
kselftest_module.h
lib.mk selftests: fix LLVM build for i386 and x86_64 2023-03-22 13:33:44 +01:00
run_kselftest.sh