Re: [PATCH v2 18/20] linux/power_of_2.h: Add __IS_POWER_OF_2(n) and __IS_POWER_OF_2_OR_0(n) macros

From: Jani Nikula
Date: Mon Nov 22 2021 - 03:55:39 EST


On Sun, 21 Nov 2021, Arnd Bergmann <arnd@xxxxxxxx> wrote:
> On Sat, Nov 20, 2021 at 2:01 PM Alejandro Colomar
> <alx.manpages@xxxxxxxxx> wrote:
>> +
>> +#define __IS_POWER_OF_2_OR_0(n) (((n) & ((n) - 1)) == 0)
>> +#define __IS_POWER_OF_2(n) (__IS_POWER_OF_2_OR_0(n) && ((n) != 0))
>> +
>
> There is already is_power_of_2() in include/linux/log2.h, which would
> be preferred
> in most cases. If you need a macro version, put it in the same file
> and explain why it's
> needed.

Also, the macro argument n is evaluated 2-3 times. Please use
checkpatch.pl --strict argument on the patches, and it'll give you hints
about this stuff too.

BR,
Jani.


--
Jani Nikula, Intel Open Source Graphics Center