lkml.org 
[lkml]   [2018]   [Jan]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 09/53] kconfig.h: use __is_defined() to check if MODULE is defined
    Date
    4.4-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Masahiro Yamada <yamada.masahiro@socionext.com>

    commit 4f920843d248946545415c1bf6120942048708ed upstream.

    The macro MODULE is not a config option, it is a per-file build
    option. So, config_enabled(MODULE) is not sensible. (There is
    another case in include/linux/export.h, where config_enabled() is
    used against a non-config option.)

    This commit renames some macros in include/linux/kconfig.h for the
    use for non-config macros and replaces config_enabled(MODULE) with
    __is_defined(MODULE).

    I am keeping config_enabled() because it is still referenced from
    some places, but I expect it would be deprecated in the future.

    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: Michal Marek <mmarek@suse.com>
    Signed-off-by: Razvan Ghitulete <rga@amazon.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    include/linux/kconfig.h | 11 ++++++-----
    1 file changed, 6 insertions(+), 5 deletions(-)

    --- a/include/linux/kconfig.h
    +++ b/include/linux/kconfig.h
    @@ -17,10 +17,11 @@
    * the last step cherry picks the 2nd arg, we get a zero.
    */
    #define __ARG_PLACEHOLDER_1 0,
    -#define config_enabled(cfg) _config_enabled(cfg)
    -#define _config_enabled(value) __config_enabled(__ARG_PLACEHOLDER_##value)
    -#define __config_enabled(arg1_or_junk) ___config_enabled(arg1_or_junk 1, 0)
    -#define ___config_enabled(__ignored, val, ...) val
    +#define config_enabled(cfg) ___is_defined(cfg)
    +#define __is_defined(x) ___is_defined(x)
    +#define ___is_defined(val) ____is_defined(__ARG_PLACEHOLDER_##val)
    +#define ____is_defined(arg1_or_junk) __take_second_arg(arg1_or_junk 1, 0)
    +#define __take_second_arg(__ignored, val, ...) val

    /*
    * IS_BUILTIN(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y', 0
    @@ -42,7 +43,7 @@
    * built-in code when CONFIG_FOO is set to 'm'.
    */
    #define IS_REACHABLE(option) (config_enabled(option) || \
    - (config_enabled(option##_MODULE) && config_enabled(MODULE)))
    + (config_enabled(option##_MODULE) && __is_defined(MODULE)))

    /*
    * IS_ENABLED(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y' or 'm',

    \
     
     \ /
      Last update: 2018-01-22 10:43    [W:4.019 / U:0.356 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site