diff options
author | Mauricio Vásquez <mauricio@kinvolk.io> | 2022-02-07 17:50:50 +0300 |
---|---|---|
committer | Andrii Nakryiko <andrii@kernel.org> | 2022-02-07 23:12:22 +0300 |
commit | e4e835c87bb5ef7e7923e72da57c923bfcade418 (patch) | |
tree | 136eac0689057d673d5cb7a2c85ccf6c6de1c7c6 /tools/bpf/bpftool/main.c | |
parent | e91d280c840f133560072f246321f9a4d1f4eb14 (diff) | |
download | linux-e4e835c87bb5ef7e7923e72da57c923bfcade418.tar.xz |
libbpf: Remove mode check in libbpf_set_strict_mode()
libbpf_set_strict_mode() checks that the passed mode doesn't contain
extra bits for LIBBPF_STRICT_* flags that don't exist yet.
It makes it difficult for applications to disable some strict flags as
something like "LIBBPF_STRICT_ALL & ~LIBBPF_STRICT_MAP_DEFINITIONS"
is rejected by this check and they have to use a rather complicated
formula to calculate it.[0]
One possibility is to change LIBBPF_STRICT_ALL to only contain the bits
of all existing LIBBPF_STRICT_* flags instead of 0xffffffff. However
it's not possible because the idea is that applications compiled against
older libbpf_legacy.h would still be opting into latest
LIBBPF_STRICT_ALL features.[1]
The other possibility is to remove that check so something like
"LIBBPF_STRICT_ALL & ~LIBBPF_STRICT_MAP_DEFINITIONS" is allowed. It's
what this commit does.
[0]: https://lore.kernel.org/bpf/20220204220435.301896-1-mauricio@kinvolk.io/
[1]: https://lore.kernel.org/bpf/CAEf4BzaTWa9fELJLh+bxnOb0P1EMQmaRbJVG0L+nXZdy0b8G3Q@mail.gmail.com/
Fixes: 93b8952d223a ("libbpf: deprecate legacy BPF map definitions")
Signed-off-by: Mauricio Vásquez <mauricio@kinvolk.io>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20220207145052.124421-2-mauricio@kinvolk.io
Diffstat (limited to 'tools/bpf/bpftool/main.c')
0 files changed, 0 insertions, 0 deletions