Re: [PATCH] libbpf: Fix is_pow_of_2

From: Zvi Effron
Date: Tue Jun 21 2022 - 19:03:50 EST


On Sun, Jun 19, 2022 at 12:13 PM Pavel Machek <pavel@xxxxxx> wrote:
>
> Hi!
>
> > From: Yuze Chi <chiyuze@xxxxxxxxxx>
> >
> > +++ b/tools/lib/bpf/libbpf.c
> > @@ -4956,7 +4956,7 @@ static void bpf_map__destroy(struct bpf_map *map);
> >
> > static bool is_pow_of_2(size_t x)
> > {
> > - return x && (x & (x - 1));
> > + return x && !(x & (x - 1));
> > }
>
> I'm pretty sure we have this test in macro in includes somewhere... should we use
> that instead?

I went looking for a macro that provided this check and could not find one. I
did find the inlined static function is_power_of_2 in log2.h, though, that we
could use.

> Pavel
> --
> (english) http://www.livejournal.com/~pavelmachek
> (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html