Messages in this thread | | | Subject | Re: [PATCH] libbpf: Fix is_pow_of_2 | From | Tiezhu Yang <> | Date | Wed, 22 Jun 2022 08:20:10 +0800 |
| |
On 06/22/2022 07:03 AM, Zvi Effron wrote: > On Sun, Jun 19, 2022 at 12:13 PM Pavel Machek <pavel@ucw.cz> wrote: >> >> Hi! >> >>> From: Yuze Chi <chiyuze@google.com> >>> >>> +++ 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
arch/microblaze/mm/pgtable.c
#define is_power_of_2(x) ((x) != 0 && (((x) & ((x) - 1)) == 0))
> did find the inlined static function is_power_of_2 in log2.h, though, that we > could use.
Here is a patch, but it seems that this is not worth the extra pain.
https://lore.kernel.org/bpf/8e5291b7-bd89-6fea-bfb7-954cacdb8523@iogearbox.net/
Thanks, Tiezhu
| |