Home
last modified time | relevance | path

Searched hist:"25 a4481b" (Results 1 – 1 of 1) sorted by relevance

/openbmc/linux/tools/lib/bpf/
H A Dbtf.c25a4481b Mon Dec 12 15:15:03 CST 2022 Andrii Nakryiko <andrii@kernel.org> libbpf: Fix btf__align_of() by taking into account field offsets

btf__align_of() is supposed to be return alignment requirement of
a requested BTF type. For STRUCT/UNION it doesn't always return correct
value, because it calculates alignment only based on field types. But
for packed structs this is not enough, we need to also check field
offsets and struct size. If field offset isn't aligned according to
field type's natural alignment, then struct must be packed. Similarly,
if struct size is not a multiple of struct's natural alignment, then
struct must be packed as well.

This patch fixes this issue precisely by additionally checking these
conditions.

Fixes: 3d208f4ca111 ("libbpf: Expose btf__align_of() API")
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20221212211505.558851-5-andrii@kernel.org