Merge branch 'Provide bpf_for() and bpf_for_each() by libbpf'
authorAlexei Starovoitov <ast@kernel.org>
Tue, 18 Apr 2023 19:45:11 +0000 (12:45 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Tue, 18 Apr 2023 19:45:11 +0000 (12:45 -0700)
commit276dcdd1a8f33047524dd0ae517290f0842fe4b8
treec069a1e9e77fac7fa75e3d6e249d3cf60e82a219
parent49859de997c3115b85544bce6b6ceab60a7fabc4
parent94dccba7952072ce448a3278c66405fbb2a44ec5
Merge branch 'Provide bpf_for() and bpf_for_each() by libbpf'

Andrii Nakryiko says:

====================

This patch set moves bpf_for(), bpf_for_each(), and bpf_repeat() macros from
selftests-internal bpf_misc.h header to libbpf-provided bpf_helpers.h header.
To do this in a way to allow users to feature-detect and guard such
bpf_for()/bpf_for_each() uses on old kernels we also extend libbpf to improve
unresolved kfunc calls handling and reporting. This lets us mark
bpf_iter_num_{new,next,destroy}() declarations as __weak, and thus not fail
program loading outright if such kfuncs are missing on the host kernel.

Patches #1 and #2 do some simple clean ups and logging improvements. Patch #3
adds kfunc call poisoning and log fixup logic and is the hear of this patch
set, effectively. Patch #4 adds selftest for this logic. Patches #4 and #5
move bpf_for()/bpf_for_each()/bpf_repeat() into bpf_helpers.h header and mark
kfuncs as __weak to allow users to feature-detect and guard their uses.
====================

Signed-off-by: Alexei Starovoitov <ast@kernel.org>