linux/tools/lib/bpf
Yuntao Wang 41332d6e3a libbpf: Add a check to ensure that page_cnt is non-zero
The page_cnt parameter is used to specify the number of memory pages
allocated for each per-CPU buffer, it must be non-zero and a power of 2.

Currently, the __perf_buffer__new() function attempts to validate that
the page_cnt is a power of 2 but forgets checking for the case where
page_cnt is zero, we can fix it by replacing 'page_cnt & (page_cnt - 1)'
with 'page_cnt == 0 || (page_cnt & (page_cnt - 1))'.

If so, we also don't need to add a check in perf_buffer__new_v0_6_0() to
make sure that page_cnt is non-zero and the check for zero in
perf_buffer__new_raw_v0_6_0() can also be removed.

The code will be cleaner and more readable.

Signed-off-by: Yuntao Wang <ytcoode@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20220303005921.53436-1-ytcoode@gmail.com
2022-03-03 16:23:22 +01:00
..
.gitignore libbpf: Make libbpf_version.h non-auto-generated 2021-09-13 15:36:47 -07:00
bpf_core_read.h libbpf: Fix endianness detection in BPF_CORE_READ_BITFIELD_PROBED() 2021-10-25 20:39:41 -07:00
bpf_endian.h libbpf: Make bpf_endian co-exist with vmlinux.h 2020-07-01 09:06:12 +02:00
bpf_gen_internal.h Merge https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next 2021-12-10 15:56:13 -08:00
bpf_helpers.h libbpf: deprecate legacy BPF map definitions 2022-01-20 21:19:05 -08:00
bpf_prog_linfo.c libbpf: Streamline error reporting for high-level APIs 2021-05-25 17:32:35 -07:00
bpf_tracing.h libbpf: Add BPF_KPROBE_SYSCALL macro 2022-02-08 21:45:02 -08:00
bpf.c libbpf: Rename bpf_prog_attach_xattr() to bpf_prog_attach_opts() 2022-01-12 17:01:37 -08:00
bpf.h libbpf: Deprecate bpf_prog_test_run_xattr and bpf_prog_test_run 2022-02-02 22:31:18 -08:00
btf_dump.c libbpf: Skip forward declaration when counting duplicated type names 2022-03-01 13:40:57 +01:00
btf.c libbpf: Improve btf__add_btf() with an additional hashmap for strings. 2022-01-19 10:57:27 -08:00
btf.h libbpf: Deprecate forgotten btf__get_map_kv_tids() 2022-02-04 01:07:16 +01:00
Build libbpf: Split CO-RE logic into relo_core.c. 2021-07-26 12:29:14 -07:00
gen_loader.c libbpf: Prepare light skeleton for the kernel. 2022-02-10 23:31:51 +01:00
hashmap.c libbpf: Use IS_ERR_OR_NULL() in hashmap__free() 2022-01-12 17:01:36 -08:00
hashmap.h libbpf, hashmap: Fix undefined behavior in hash_bits 2020-11-02 23:33:51 +01:00
libbpf_common.h libbpf: Deprecate bpf_prog_load_xattr() API 2021-12-02 15:23:41 -08:00
libbpf_errno.c libbpf: Streamline error reporting for high-level APIs 2021-05-25 17:32:35 -07:00
libbpf_internal.h libbpf: Expose bpf_core_{add,free}_cands() to bpftool 2022-02-16 10:05:45 -08:00
libbpf_legacy.h libbpf: hide and discourage inconsistently named getters 2022-01-25 17:59:06 -08:00
libbpf_probes.c libbpf: Improve LINUX_VERSION_CODE detection 2021-12-28 19:20:31 -08:00
libbpf_version.h libbpf: Add API to get/set log_level at per-program level 2021-12-02 15:23:40 -08:00
libbpf.c libbpf: Add a check to ensure that page_cnt is non-zero 2022-03-03 16:23:22 +01:00
libbpf.h libbpf: Deprecate priv/set_priv storage 2022-02-03 12:34:45 -08:00
libbpf.map libbpf: Fix libbpf.map inheritance chain for LIBBPF_0.7.0 2022-02-11 12:59:28 -08:00
libbpf.pc.template libbpf: Add zlib as a dependency in pkg-config template 2019-12-16 14:55:29 -08:00
linker.c libbpf: Fix using invalidated memory in bpf_linker 2021-11-26 00:15:03 +01:00
Makefile libbpf: Fix build issue with llvm-readelf 2022-02-04 18:22:56 -08:00
netlink.c libbpf: Fix memleak in libbpf_netlink_recv() 2022-02-17 16:09:07 +01:00
nlattr.c libbpf: Switch to void * casting in netlink helpers 2021-06-22 17:04:02 +02:00
nlattr.h libbpf: Switch to void * casting in netlink helpers 2021-06-22 17:04:02 +02:00
relo_core.c libbpf: Split bpf_core_apply_relo() 2022-02-16 10:05:42 -08:00
relo_core.h libbpf: Split bpf_core_apply_relo() 2022-02-16 10:05:42 -08:00
ringbuf.c libbpf: Streamline error reporting for high-level APIs 2021-05-25 17:32:35 -07:00
skel_internal.h libbpf: Prepare light skeleton for the kernel. 2022-02-10 23:31:51 +01:00
str_error.c libbpf: Poison kernel-only integer types 2020-01-10 10:38:00 -08:00
str_error.h libbpf: relicense libbpf as LGPL-2.1 OR BSD-2-Clause 2018-10-08 10:09:48 +02:00
strset.c libbpf: Fix memory leak in strset 2021-10-01 22:54:38 +02:00
strset.h libbpf: Extract internal set-of-strings datastructure APIs 2021-03-18 16:14:22 -07:00
xsk.c libbpf: Add sane strncpy alternative and use it internally 2021-12-14 15:47:56 +01:00
xsk.h libbpf: Deprecate AF_XDP support 2021-11-01 18:12:44 -07:00