Re: [PATCH v2] libbpf: Fix is_pow_of_2

From: Ian Rogers
Date: Fri Jun 03 2022 - 01:57:34 EST


On Thu, Jun 2, 2022 at 10:52 PM Ian Rogers <irogers@xxxxxxxxxx> wrote:
>
> From: Yuze Chi <chiyuze@xxxxxxxxxx>
>
> Move the correct definition from linker.c into libbpf_internal.h.
>

Sorry I missed this:
Fixes: 0087a681fa8c ("libbpf: Automatically fix up
BPF_MAP_TYPE_RINGBUF size, if necessary")

Thanks,
Ian

> Reported-by: Yuze Chi <chiyuze@xxxxxxxxxx>
> Signed-off-by: Yuze Chi <chiyuze@xxxxxxxxxx>
> Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
> ---
> tools/lib/bpf/libbpf.c | 5 -----
> tools/lib/bpf/libbpf_internal.h | 5 +++++
> tools/lib/bpf/linker.c | 5 -----
> 3 files changed, 5 insertions(+), 10 deletions(-)
>
> diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
> index 3f4f18684bd3..346f941bb995 100644
> --- a/tools/lib/bpf/libbpf.c
> +++ b/tools/lib/bpf/libbpf.c
> @@ -4954,11 +4954,6 @@ bpf_object__populate_internal_map(struct bpf_object *obj, struct bpf_map *map)
>
> static void bpf_map__destroy(struct bpf_map *map);
>
> -static bool is_pow_of_2(size_t x)
> -{
> - return x && (x & (x - 1));
> -}
> -
> static size_t adjust_ringbuf_sz(size_t sz)
> {
> __u32 page_sz = sysconf(_SC_PAGE_SIZE);
> diff --git a/tools/lib/bpf/libbpf_internal.h b/tools/lib/bpf/libbpf_internal.h
> index 4abdbe2fea9d..ef5d975078e5 100644
> --- a/tools/lib/bpf/libbpf_internal.h
> +++ b/tools/lib/bpf/libbpf_internal.h
> @@ -580,4 +580,9 @@ struct bpf_link * usdt_manager_attach_usdt(struct usdt_manager *man,
> const char *usdt_provider, const char *usdt_name,
> __u64 usdt_cookie);
>
> +static inline bool is_pow_of_2(size_t x)
> +{
> + return x && (x & (x - 1)) == 0;
> +}
> +
> #endif /* __LIBBPF_LIBBPF_INTERNAL_H */
> diff --git a/tools/lib/bpf/linker.c b/tools/lib/bpf/linker.c
> index 9aa016fb55aa..85c0fddf55d1 100644
> --- a/tools/lib/bpf/linker.c
> +++ b/tools/lib/bpf/linker.c
> @@ -697,11 +697,6 @@ static int linker_load_obj_file(struct bpf_linker *linker, const char *filename,
> return err;
> }
>
> -static bool is_pow_of_2(size_t x)
> -{
> - return x && (x & (x - 1)) == 0;
> -}
> -
> static int linker_sanity_check_elf(struct src_obj *obj)
> {
> struct src_sec *sec;
> --
> 2.36.1.255.ge46751e96f-goog
>