linux/tools/testing
Lorenz Bauer 248e00ac47 bpf: cgroup: Allow multi-attach program to replace itself
When using BPF_PROG_ATTACH to attach a program to a cgroup in
BPF_F_ALLOW_MULTI mode, it is not possible to replace a program
with itself. This is because the check for duplicate programs
doesn't take the replacement program into account.

Replacing a program with itself might seem weird, but it has
some uses: first, it allows resetting the associated cgroup storage.
Second, it makes the API consistent with the non-ALLOW_MULTI usage,
where it is possible to replace a program with itself. Third, it
aligns BPF_PROG_ATTACH with bpf_link, where replacing itself is
also supported.

Sice this code has been refactored a few times this change will
only apply to v5.7 and later. Adjustments could be made to
commit 1020c1f24a ("bpf: Simplify __cgroup_bpf_attach") and
commit d7bf2c10af ("bpf: allocate cgroup storage entries on attaching bpf programs")
as well as commit 324bda9e6c ("bpf: multi program support for cgroup+bpf")

Fixes: af6eea5743 ("bpf: Implement bpf_link-based cgroup BPF program attachment")
Signed-off-by: Lorenz Bauer <lmb@cloudflare.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20200608162202.94002-1-lmb@cloudflare.com
2020-06-09 11:21:43 -07:00
..
fault-injection
ktest ktest: Fix typos in ktest.pl 2020-03-09 16:15:27 -04:00
kunit SPDX patches for 5.7-rc1. 2020-04-03 13:12:26 -07:00
nvdimm tools/test/nvdimm: Fix out of tree build 2020-03-31 14:12:32 -07:00
radix-tree SPDX patches for 5.7-rc1. 2020-04-03 13:12:26 -07:00
scatterlist
selftests bpf: cgroup: Allow multi-attach program to replace itself 2020-06-09 11:21:43 -07:00
vsock SPDX patches for 5.7-rc1. 2020-04-03 13:12:26 -07:00