[PATCH 1/2] if_enabled.h: Add IF_ENABLED_OR_ELSE() and IF_ENABLED() macros

Paul Cercueil paul at crapouillou.net
Wed Dec 9 06:31:41 EST 2020


Hi Linus,

Le mer. 9 déc. 2020 à 9:59, Linus Walleij <linus.walleij at linaro.org> 
a écrit :
> On Tue, Dec 8, 2020 at 5:48 PM Paul Cercueil <paul at crapouillou.net> 
> wrote:
> 
>>  Introduce a new header <linux/if_enabled.h>, that brings two new 
>> macros:
>>  IF_ENABLED_OR_ELSE() and IF_ENABLED().
> 
> I understand what the patch is trying to do, but when we already have
> IS_ENABLED() in <linux/kconfig.h> this syntax becomes a big cognitive
> confusion for the mind.
> 
> At least the commit needs to explain why it doesn't work to use
> IS_ENABLED() instead so that this is needed.

You can use IS_ENABLED(). Then you'd write:

field = IS_ENABLED(CONFIG_FOO) ? &my_ptr : NULL,

the IF_ENABLED() macro makes it a bit cleaner by allowing you to write:

field = IF_ENABLED(CONFIG_FOO, &my_ptr),

Cheers,
-Paul

> Certainly the build failures must be possible to solve so that this
> can live with the sibling IS_ENABLED() inside <linux/kconfig.h>,
> it can't be too hard.
> 
> Yours,
> Linus Walleij





More information about the linux-arm-kernel mailing list