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

From: Paul Cercueil
Date: Wed Dec 09 2020 - 06:32:36 EST


Hi Linus,

Le mer. 9 déc. 2020 à 9:59, Linus Walleij <linus.walleij@xxxxxxxxxx> a écrit :
On Tue, Dec 8, 2020 at 5:48 PM Paul Cercueil <paul@xxxxxxxxxxxxxxx> 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