Re: [PATCH -next] evm: Use IS_ENABLED to initialize .enabled

From: xiujianfeng
Date: Wed Jun 29 2022 - 00:00:38 EST



在 2022/6/27 0:13, Mimi Zohar 写道:
On Tue, 2022-06-21 at 19:17 -0700, Eric Biggers wrote:
On Tue, Jun 21, 2022 at 10:03:39AM -0400, Mimi Zohar wrote:
On Tue, 2022-06-21 at 18:58 +0800, xiujianfeng wrote:
Hi, Ahmad

在 2022/6/7 14:06, Ahmad Fatoum 写道:
On 06.06.22 12:10, Xiu Jianfeng wrote:
Use IS_ENABLED(CONFIG_XXX) instead of #ifdef/#endif statements to
initialize .enabled, minor simplicity improvement.
The difference between using ifdef's and IS_ENABLED is when the
decision is made - build time, run time. Please update the patch
description providing an explanation for needing to make the decision
at run time.

thanks,
IS_ENABLED() is a compile time constant. So the patch looks fine to me.
Thanks, Eric, for the clarification.

As LSMs are only builtin, why the need for using IS_ENABLED as opposed
to IS_BUILTIN?

#define IS_ENABLED(option) __or(IS_BUILTIN(option), IS_MODULE(option))

thanks,

I think IS_ENALBED() is a bit more generic, maybe. here is another example in rcutorture.c

which uses IS_ENABLED() to initialize the member in structure:

static struct rcu_torture_ops rcu_ops = {

...

.can_boost = IS_ENABLED(CONFIG_RCU_BOOST),

...

};

Do you want me to change IS_ENABLED() to IS_BUILTIN()?


Mimi

.