lkml.org 
[lkml]   [2016]   [May]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.5 193/200] unbreak allmodconfig KCONFIG_ALLCONFIG=...
    Date
    4.5-stable review patch.  If anyone has any objections, please let me know.

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

    From: Al Viro <viro@ZenIV.linux.org.uk>

    commit 6b87b70c5339f30e3c5b32085e69625906513dc2 upstream.

    Prior to 3.13 make allmodconfig KCONFIG_ALLCONFIG=/dev/null used
    to be equivalent to make allmodconfig; these days it hardwires MODULES to n.
    In fact, any KCONFIG_ALLCONFIG that doesn't set MODULES explicitly is
    treated as if it set it to n.

    Regression had been introduced by commit cfa98f ("kconfig: do not
    override symbols already set"); what happens is that conf_read_simple()
    does sym_calc_value(modules_sym) on exit, which leaves SYMBOL_VALID set and
    has conf_set_all_new_symbols() skip modules_sym.

    It's pretty easy to fix - simply move that call of sym_calc_value()
    into the callers, except for the ones in KCONFIG_ALLCONFIG handling.
    Objections?

    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Fixes: cfa98f2e0ae9 ("kconfig: do not override symbols already set")
    Signed-off-by: Michal Marek <mmarek@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    scripts/kconfig/confdata.c | 12 +++++++-----
    1 file changed, 7 insertions(+), 5 deletions(-)

    --- a/scripts/kconfig/confdata.c
    +++ b/scripts/kconfig/confdata.c
    @@ -267,10 +267,8 @@ int conf_read_simple(const char *name, i
    if (in)
    goto load;
    sym_add_change_count(1);
    - if (!sym_defconfig_list) {
    - sym_calc_value(modules_sym);
    + if (!sym_defconfig_list)
    return 1;
    - }

    for_all_defaults(sym_defconfig_list, prop) {
    if (expr_calc_value(prop->visible.expr) == no ||
    @@ -403,7 +401,6 @@ setsym:
    }
    free(line);
    fclose(in);
    - sym_calc_value(modules_sym);
    return 0;
    }

    @@ -414,8 +411,12 @@ int conf_read(const char *name)

    sym_set_change_count(0);

    - if (conf_read_simple(name, S_DEF_USER))
    + if (conf_read_simple(name, S_DEF_USER)) {
    + sym_calc_value(modules_sym);
    return 1;
    + }
    +
    + sym_calc_value(modules_sym);

    for_all_symbols(i, sym) {
    sym_calc_value(sym);
    @@ -846,6 +847,7 @@ static int conf_split_config(void)

    name = conf_get_autoconfig_name();
    conf_read_simple(name, S_DEF_AUTO);
    + sym_calc_value(modules_sym);

    if (chdir("include/config"))
    return 1;

    \
     
     \ /
      Last update: 2016-05-03 03:01    [W:4.100 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site