[PATCH] x86_64: make amd quad core 8 socket system not be clustered_box - Kernel

This is a discussion on [PATCH] x86_64: make amd quad core 8 socket system not be clustered_box - Kernel ; Hi, On Tue, 26 Feb 2008, Sam Ravnborg wrote: > We discovered a situation where we could set a > choice value in menuconfig but later when we either was > running menuconfig or oldconfig the value were changed. The ...

+ Reply to Thread
Page 3 of 3 FirstFirst 1 2 3
Results 41 to 48 of 48

Thread: [PATCH] x86_64: make amd quad core 8 socket system not be clustered_box

  1. [PATCH 1/3] fix recursive dependencies

    Hi,

    On Tue, 26 Feb 2008, Sam Ravnborg wrote:

    > We discovered a situation where we could set a
    > choice value in menuconfig but later when we either was
    > running menuconfig or oldconfig the value were changed.


    The patch fixes these dependency problems.

    bye, Roman


    The proper dependency check uncovered a few dependency problems,
    the subarchitecture used a mixture of selects and depends on SMP
    and PCI dependency was messed up.

    Signed-off-by: Roman Zippel

    ---
    arch/x86/Kconfig | 10 ++++------
    1 file changed, 4 insertions(+), 6 deletions(-)

    Index: linux-2.6/arch/x86/Kconfig
    ================================================== =================
    --- linux-2.6.orig/arch/x86/Kconfig
    +++ linux-2.6/arch/x86/Kconfig
    @@ -243,8 +243,7 @@ config X86_ELAN

    config X86_VOYAGER
    bool "Voyager (NCR)"
    - depends on X86_32
    - select SMP if !BROKEN
    + depends on X86_32 && (SMP || BROKEN)
    help
    Voyager is an MCA-based 32-way capable SMP architecture proprietary
    to NCR Corp. Machine classes 345x/35xx/4100/51xx are Voyager-based.
    @@ -256,9 +255,8 @@ config X86_VOYAGER

    config X86_NUMAQ
    bool "NUMAQ (IBM/Sequent)"
    - select SMP
    + depends on SMP && X86_32
    select NUMA
    - depends on X86_32
    help
    This option is used for getting Linux to run on a (IBM/Sequent) NUMA
    multiquad box. This changes the way that processors are bootstrapped,
    @@ -329,7 +327,7 @@ config X86_RDC321X

    config X86_VSMP
    bool "Support for ScaleMP vSMP"
    - depends on X86_64 && PCI
    + depends on X86_64
    help
    Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is
    supposed to run on these EM64T-based machines. Only choose this option
    @@ -1381,7 +1379,7 @@ endmenu
    menu "Bus options (PCI etc.)"

    config PCI
    - bool "PCI support" if !X86_VISWS
    + bool "PCI support" if !X86_VISWS && !X86_VSMP
    depends on !X86_VOYAGER
    default y
    select ARCH_SUPPORTS_MSI if (X86_LOCAL_APIC && X86_IO_APIC)
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  2. [PATCH 3/3] add named choice group


    As choice dependency are now fully checked, it's quite easy to add support
    for named choices. This lifts the restriction that a choice value can only
    appear once, although it still has to be within the same group,
    but multiple choices can be joined by giving them a name.
    While at it I cleaned up a little the choice type logic to simplify it a
    bit.

    Signed-off-by: Roman Zippel

    ---
    scripts/kconfig/lex.zconf.c_shipped | 25 --
    scripts/kconfig/lkc_proto.h | 2
    scripts/kconfig/menu.c | 64 +++----
    scripts/kconfig/symbol.c | 24 +-
    scripts/kconfig/zconf.tab.c_shipped | 301 ++++++++++++++++++------------------
    scripts/kconfig/zconf.y | 13 -
    6 files changed, 206 insertions(+), 223 deletions(-)

    Index: linux-2.6/scripts/kconfig/lex.zconf.c_shipped
    ================================================== =================
    --- linux-2.6.orig/scripts/kconfig/lex.zconf.c_shipped
    +++ linux-2.6/scripts/kconfig/lex.zconf.c_shipped
    @@ -5,25 +5,6 @@

    /* A lexical scanner generated by flex */

    -#define yy_create_buffer zconf_create_buffer
    -#define yy_delete_buffer zconf_delete_buffer
    -#define yy_flex_debug zconf_flex_debug
    -#define yy_init_buffer zconf_init_buffer
    -#define yy_flush_buffer zconf_flush_buffer
    -#define yy_load_buffer_state zconf_load_buffer_state
    -#define yy_switch_to_buffer zconf_switch_to_buffer
    -#define yyin zconfin
    -#define yyleng zconfleng
    -#define yylex zconflex
    -#define yylineno zconflineno
    -#define yyout zconfout
    -#define yyrestart zconfrestart
    -#define yytext zconftext
    -#define yywrap zconfwrap
    -#define yyalloc zconfalloc
    -#define yyrealloc zconfrealloc
    -#define yyfree zconffree
    -
    #define FLEX_SCANNER
    #define YY_FLEX_MAJOR_VERSION 2
    #define YY_FLEX_MINOR_VERSION 5
    @@ -354,7 +335,7 @@ void zconffree (void * );

    /* Begin user sect3 */

    -#define zconfwrap(n) 1
    +#define zconfwrap() 1
    #define YY_SKIP_YYWRAP

    typedef unsigned char YY_CHAR;
    @@ -1535,7 +1516,7 @@ static int yy_get_next_buffer (void)

    /* Read in more data. */
    YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
    - (yy_n_chars), num_to_read );
    + (yy_n_chars), (size_t) num_to_read );

    YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
    }
    @@ -2007,7 +1988,7 @@ YY_BUFFER_STATE zconf_scan_buffer (char

    /** Setup the input buffer state to scan a string. The next call to zconflex() will
    * scan from a @e copy of @a str.
    - * @param str a NUL-terminated string to scan
    + * @param yystr a NUL-terminated string to scan
    *
    * @return the newly allocated buffer state object.
    * @note If you want to scan bytes that may contain NUL values, then use
    Index: linux-2.6/scripts/kconfig/lkc_proto.h
    ================================================== =================
    --- linux-2.6.orig/scripts/kconfig/lkc_proto.h
    +++ linux-2.6/scripts/kconfig/lkc_proto.h
    @@ -21,7 +21,7 @@ P(menu_get_help,const char *,(struct men
    /* symbol.c */
    P(symbol_hash,struct symbol *,[SYMBOL_HASHSIZE]);

    -P(sym_lookup,struct symbol *,(const char *name, int isconst));
    +P(sym_lookup,struct symbol *,(const char *name, int flags));
    P(sym_find,struct symbol *,(const char *name));
    P(sym_re_search,struct symbol **,(const char *pattern));
    P(sym_type_name,const char *,(enum symbol_type type));
    Index: linux-2.6/scripts/kconfig/menu.c
    ================================================== =================
    --- linux-2.6.orig/scripts/kconfig/menu.c
    +++ linux-2.6/scripts/kconfig/menu.c
    @@ -235,18 +235,22 @@ void menu_finalize(struct menu *parent)
    sym = parent->sym;
    if (parent->list) {
    if (sym && sym_is_choice(sym)) {
    - /* find the first choice value and find out choice type */
    - for (menu = parent->list; menu; menu = menu->next) {
    - if (menu->sym) {
    - current_entry = parent;
    - if (sym->type == S_UNKNOWN)
    + if (sym->type == S_UNKNOWN) {
    + /* find the first choice value to find out choice type */
    + current_entry = parent;
    + for (menu = parent->list; menu; menu = menu->next) {
    + if (menu->sym && menu->sym->type != S_UNKNOWN) {
    menu_set_type(menu->sym->type);
    - current_entry = menu;
    - if (menu->sym->type == S_UNKNOWN)
    - menu_set_type(sym->type);
    - break;
    + break;
    + }
    }
    }
    + /* set the type of the remaining choice values */
    + for (menu = parent->list; menu; menu = menu->next) {
    + current_entry = menu;
    + if (menu->sym && menu->sym->type == S_UNKNOWN)
    + menu_set_type(sym->type);
    + }
    parentdep = expr_alloc_symbol(sym);
    } else if (parent->prompt)
    parentdep = parent->prompt->visible.expr;
    @@ -313,50 +317,36 @@ void menu_finalize(struct menu *parent)
    }
    }
    for (menu = parent->list; menu; menu = menu->next) {
    - if (sym && sym_is_choice(sym) && menu->sym) {
    + if (sym && sym_is_choice(sym) &&
    + menu->sym && !sym_is_choice_value(menu->sym)) {
    + current_entry = menu;
    menu->sym->flags |= SYMBOL_CHOICEVAL;
    if (!menu->prompt)
    menu_warn(menu, "choice value must have a prompt");
    for (prop = menu->sym->prop; prop; prop = prop->next) {
    - if (prop->type == P_PROMPT && prop->menu != menu) {
    - prop_warn(prop, "choice values "
    - "currently only support a "
    - "single prompt");
    - }
    if (prop->type == P_DEFAULT)
    prop_warn(prop, "defaults for choice "
    - "values not supported");
    + "values not supported");
    + if (prop->menu == menu)
    + continue;
    + if (prop->type == P_PROMPT &&
    + prop->menu->parent->sym != sym)
    + prop_warn(prop, "choice value used outside its choice group");
    }
    - current_entry = menu;
    - if (menu->sym->type == S_UNKNOWN)
    - menu_set_type(sym->type);
    /* Non-tristate choice values of tristate choices must
    * depend on the choice being set to Y. The choice
    * values' dependencies were propagated to their
    * properties above, so the change here must be re-
    - * propagated. */
    + * propagated.
    + */
    if (sym->type == S_TRISTATE && menu->sym->type != S_TRISTATE) {
    basedep = expr_alloc_comp(E_EQUAL, sym, &symbol_yes);
    - basedep = expr_alloc_and(basedep, menu->dep);
    - basedep = expr_eliminate_dups(basedep);
    - menu->dep = basedep;
    + menu->dep = expr_alloc_and(basedep, menu->dep);
    for (prop = menu->sym->prop; prop; prop = prop->next) {
    if (prop->menu != menu)
    continue;
    - dep = expr_alloc_and(expr_copy(basedep),
    - prop->visible.expr);
    - dep = expr_eliminate_dups(dep);
    - dep = expr_trans_bool(dep);
    - prop->visible.expr = dep;
    - if (prop->type == P_SELECT) {
    - struct symbol *es = prop_get_symbol(prop);
    - dep2 = expr_alloc_symbol(menu->sym);
    - dep = expr_alloc_and(dep2,
    - expr_copy(dep));
    - dep = expr_alloc_or(es->rev_dep.expr, dep);
    - dep = expr_eliminate_dups(dep);
    - es->rev_dep.expr = dep;
    - }
    + prop->visible.expr = expr_alloc_and(expr_copy(basedep),
    + prop->visible.expr);
    }
    }
    menu_add_symbol(P_CHOICE, sym, NULL);
    Index: linux-2.6/scripts/kconfig/symbol.c
    ================================================== =================
    --- linux-2.6.orig/scripts/kconfig/symbol.c
    +++ linux-2.6/scripts/kconfig/symbol.c
    @@ -40,7 +40,7 @@ void sym_add_default(struct symbol *sym,
    {
    struct property *prop = prop_alloc(P_DEFAULT, sym);

    - prop->expr = expr_alloc_symbol(sym_lookup(def, 1));
    + prop->expr = expr_alloc_symbol(sym_lookup(def, SYMBOL_CONST));
    }

    void sym_init(void)
    @@ -350,9 +350,6 @@ void sym_calc_value(struct symbol *sym)
    ;
    }

    - if (sym->flags & SYMBOL_AUTO)
    - sym->flags &= ~SYMBOL_WRITE;
    -
    sym->curr = newval;
    if (sym_is_choice(sym) && newval.tri == yes)
    sym->curr.val = sym_calc_choice(sym);
    @@ -377,6 +374,9 @@ void sym_calc_value(struct symbol *sym)
    sym_set_changed(choice_sym);
    }
    }
    +
    + if (sym->flags & SYMBOL_AUTO)
    + sym->flags &= ~SYMBOL_WRITE;
    }

    void sym_clear_all_valid(void)
    @@ -651,7 +651,7 @@ bool sym_is_changable(struct symbol *sym
    return sym->visible > sym->rev_dep.tri;
    }

    -struct symbol *sym_lookup(const char *name, int isconst)
    +struct symbol *sym_lookup(const char *name, int flags)
    {
    struct symbol *symbol;
    const char *ptr;
    @@ -671,11 +671,10 @@ struct symbol *sym_lookup(const char *na
    hash &= 0xff;

    for (symbol = symbol_hash[hash]; symbol; symbol = symbol->next) {
    - if (!strcmp(symbol->name, name)) {
    - if ((isconst && symbol->flags & SYMBOL_CONST) ||
    - (!isconst && !(symbol->flags & SYMBOL_CONST)))
    - return symbol;
    - }
    + if (!strcmp(symbol->name, name) &&
    + (flags ? symbol->flags & flags
    + : !(symbol->flags & (SYMBOL_CONST|SYMBOL_CHOICE))))
    + return symbol;
    }
    new_name = strdup(name);
    } else {
    @@ -687,8 +686,7 @@ struct symbol *sym_lookup(const char *na
    memset(symbol, 0, sizeof(*symbol));
    symbol->name = new_name;
    symbol->type = S_UNKNOWN;
    - if (isconst)
    - symbol->flags |= SYMBOL_CONST;
    + symbol->flags |= flags;

    symbol->next = symbol_hash[hash];
    symbol_hash[hash] = symbol;
    @@ -962,7 +960,7 @@ void prop_add_env(const char *env)
    }

    prop = prop_alloc(P_ENV, sym);
    - prop->expr = expr_alloc_symbol(sym_lookup(env, 1));
    + prop->expr = expr_alloc_symbol(sym_lookup(env, SYMBOL_CONST));

    sym_env_list = expr_alloc_one(E_LIST, sym_env_list);
    sym_env_list->right.sym = sym;
    Index: linux-2.6/scripts/kconfig/zconf.tab.c_shipped
    ================================================== =================
    --- linux-2.6.orig/scripts/kconfig/zconf.tab.c_shipped
    +++ linux-2.6/scripts/kconfig/zconf.tab.c_shipped
    @@ -446,16 +446,16 @@ union yyalloc
    /* YYFINAL -- State number of the termination state. */
    #define YYFINAL 3
    /* YYLAST -- Last index in YYTABLE. */
    -#define YYLAST 258
    +#define YYLAST 259

    /* YYNTOKENS -- Number of terminals. */
    #define YYNTOKENS 35
    /* YYNNTS -- Number of nonterminals. */
    -#define YYNNTS 45
    +#define YYNNTS 46
    /* YYNRULES -- Number of rules. */
    -#define YYNRULES 108
    +#define YYNRULES 110
    /* YYNRULES -- Number of states. */
    -#define YYNSTATES 178
    +#define YYNSTATES 180

    /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
    #define YYUNDEFTOK 2
    @@ -507,13 +507,14 @@ static const yytype_uint16 yyprhs[] =
    28, 33, 37, 39, 41, 43, 45, 47, 49, 51,
    53, 55, 57, 59, 61, 63, 67, 70, 74, 77,
    81, 84, 85, 88, 91, 94, 97, 100, 103, 107,
    - 112, 117, 122, 128, 132, 133, 137, 138, 141, 144,
    - 147, 149, 153, 154, 157, 160, 163, 166, 169, 174,
    - 178, 181, 186, 187, 190, 194, 196, 200, 201, 204,
    - 207, 210, 214, 217, 219, 223, 224, 227, 230, 233,
    - 237, 241, 244, 247, 250, 251, 254, 257, 260, 265,
    - 266, 269, 271, 273, 276, 279, 282, 284, 287, 288,
    - 291, 293, 297, 301, 305, 308, 312, 316, 318
    + 112, 117, 122, 128, 132, 133, 137, 138, 141, 145,
    + 148, 150, 154, 155, 158, 161, 164, 167, 170, 175,
    + 179, 182, 187, 188, 191, 195, 197, 201, 202, 205,
    + 208, 211, 215, 218, 220, 224, 225, 228, 231, 234,
    + 238, 242, 245, 248, 251, 252, 255, 258, 261, 266,
    + 267, 270, 272, 274, 277, 280, 283, 285, 288, 289,
    + 292, 294, 298, 302, 306, 309, 313, 317, 319, 321,
    + 322
    };

    /* YYRHS -- A `-1'-separated list of the rules' RHS. */
    @@ -533,24 +534,25 @@ static const yytype_int8 yyrhs[] =
    30, -1, 20, 78, 77, 30, -1, 21, 25, 77,
    30, -1, 22, 79, 79, 77, 30, -1, 23, 48,
    30, -1, -1, 48, 25, 49, -1, -1, 33, 74,
    - -1, 7, 30, -1, 50, 54, -1, 75, -1, 51,
    - 56, 52, -1, -1, 54, 55, -1, 54, 72, -1,
    - 54, 70, -1, 54, 30, -1, 54, 40, -1, 18,
    - 74, 77, 30, -1, 19, 73, 30, -1, 17, 30,
    - -1, 20, 25, 77, 30, -1, -1, 56, 39, -1,
    - 14, 78, 76, -1, 75, -1, 57, 60, 58, -1,
    - -1, 60, 39, -1, 60, 64, -1, 60, 53, -1,
    - 4, 74, 30, -1, 61, 71, -1, 75, -1, 62,
    - 65, 63, -1, -1, 65, 39, -1, 65, 64, -1,
    - 65, 53, -1, 6, 74, 30, -1, 9, 74, 30,
    - -1, 67, 71, -1, 12, 30, -1, 69, 13, -1,
    - -1, 71, 72, -1, 71, 30, -1, 71, 40, -1,
    - 16, 24, 78, 30, -1, -1, 74, 77, -1, 25,
    - -1, 26, -1, 5, 30, -1, 8, 30, -1, 15,
    - 30, -1, 30, -1, 76, 30, -1, -1, 14, 78,
    - -1, 79, -1, 79, 33, 79, -1, 79, 27, 79,
    - -1, 29, 78, 28, -1, 34, 78, -1, 78, 31,
    - 78, -1, 78, 32, 78, -1, 25, -1, 26, -1
    + -1, 7, 80, 30, -1, 50, 54, -1, 75, -1,
    + 51, 56, 52, -1, -1, 54, 55, -1, 54, 72,
    + -1, 54, 70, -1, 54, 30, -1, 54, 40, -1,
    + 18, 74, 77, 30, -1, 19, 73, 30, -1, 17,
    + 30, -1, 20, 25, 77, 30, -1, -1, 56, 39,
    + -1, 14, 78, 76, -1, 75, -1, 57, 60, 58,
    + -1, -1, 60, 39, -1, 60, 64, -1, 60, 53,
    + -1, 4, 74, 30, -1, 61, 71, -1, 75, -1,
    + 62, 65, 63, -1, -1, 65, 39, -1, 65, 64,
    + -1, 65, 53, -1, 6, 74, 30, -1, 9, 74,
    + 30, -1, 67, 71, -1, 12, 30, -1, 69, 13,
    + -1, -1, 71, 72, -1, 71, 30, -1, 71, 40,
    + -1, 16, 24, 78, 30, -1, -1, 74, 77, -1,
    + 25, -1, 26, -1, 5, 30, -1, 8, 30, -1,
    + 15, 30, -1, 30, -1, 76, 30, -1, -1, 14,
    + 78, -1, 79, -1, 79, 33, 79, -1, 79, 27,
    + 79, -1, 29, 78, 28, -1, 34, 78, -1, 78,
    + 31, 78, -1, 78, 32, 78, -1, 25, -1, 26,
    + -1, -1, 25, -1
    };

    /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
    @@ -566,7 +568,8 @@ static const yytype_uint16 yyrline[] =
    339, 344, 351, 356, 364, 367, 369, 370, 371, 374,
    382, 389, 396, 402, 409, 411, 412, 413, 416, 424,
    426, 431, 432, 435, 436, 437, 441, 442, 445, 446,
    - 449, 450, 451, 452, 453, 454, 455, 458, 459
    + 449, 450, 451, 452, 453, 454, 455, 458, 459, 462,
    + 463
    };
    #endif

    @@ -590,7 +593,8 @@ static const char *const yytname[] =
    "if_entry", "if_end", "if_stmt", "if_block", "menu", "menu_entry",
    "menu_end", "menu_stmt", "menu_block", "source_stmt", "comment",
    "comment_stmt", "help_start", "help", "depends_list", "depends",
    - "prompt_stmt_opt", "prompt", "end", "nl", "if_expr", "expr", "symbol", 0
    + "prompt_stmt_opt", "prompt", "end", "nl", "if_expr", "expr", "symbol",
    + "word_opt", 0
    };
    #endif

    @@ -619,7 +623,8 @@ static const yytype_uint8 yyr1[] =
    60, 61, 62, 63, 64, 65, 65, 65, 65, 66,
    67, 68, 69, 70, 71, 71, 71, 71, 72, 73,
    73, 74, 74, 75, 75, 75, 76, 76, 77, 77,
    - 78, 78, 78, 78, 78, 78, 78, 79, 79
    + 78, 78, 78, 78, 78, 78, 78, 79, 79, 80,
    + 80
    };

    /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
    @@ -629,13 +634,14 @@ static const yytype_uint8 yyr2[] =
    4, 3, 1, 1, 1, 1, 1, 1, 1, 1,
    1, 1, 1, 1, 1, 3, 2, 3, 2, 3,
    2, 0, 2, 2, 2, 2, 2, 2, 3, 4,
    - 4, 4, 5, 3, 0, 3, 0, 2, 2, 2,
    + 4, 4, 5, 3, 0, 3, 0, 2, 3, 2,
    1, 3, 0, 2, 2, 2, 2, 2, 4, 3,
    2, 4, 0, 2, 3, 1, 3, 0, 2, 2,
    2, 3, 2, 1, 3, 0, 2, 2, 2, 3,
    3, 2, 2, 2, 0, 2, 2, 2, 4, 0,
    2, 1, 1, 2, 2, 2, 1, 2, 0, 2,
    - 1, 3, 3, 3, 2, 3, 3, 1, 1
    + 1, 3, 3, 3, 2, 3, 3, 1, 1, 0,
    + 1
    };

    /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
    @@ -643,69 +649,69 @@ static const yytype_uint8 yyr2[] =
    means the default is an error. */
    static const yytype_uint8 yydefact[] =
    {
    - 3, 0, 0, 1, 0, 0, 0, 0, 0, 0,
    + 3, 0, 0, 1, 0, 0, 0, 0, 0, 109,
    0, 0, 0, 0, 0, 0, 12, 16, 13, 14,
    18, 15, 17, 0, 19, 0, 4, 31, 22, 31,
    23, 52, 62, 5, 67, 20, 84, 75, 6, 24,
    84, 21, 8, 11, 91, 92, 0, 0, 93, 0,
    - 48, 94, 0, 0, 0, 107, 108, 0, 0, 0,
    - 100, 95, 0, 0, 0, 0, 0, 0, 0, 0,
    - 0, 0, 96, 7, 71, 79, 80, 27, 29, 0,
    - 104, 0, 0, 64, 0, 0, 9, 10, 0, 0,
    - 0, 0, 89, 0, 0, 0, 44, 0, 37, 36,
    - 32, 33, 0, 35, 34, 0, 0, 89, 0, 56,
    - 57, 53, 55, 54, 63, 51, 50, 68, 70, 66,
    - 69, 65, 86, 87, 85, 76, 78, 74, 77, 73,
    - 97, 103, 105, 106, 102, 101, 26, 82, 0, 98,
    - 0, 98, 98, 98, 0, 0, 0, 83, 60, 98,
    - 0, 98, 0, 0, 0, 38, 90, 0, 0, 98,
    - 46, 43, 25, 0, 59, 0, 88, 99, 39, 40,
    - 41, 0, 0, 45, 58, 61, 42, 47
    + 110, 0, 94, 0, 0, 0, 107, 108, 0, 0,
    + 0, 100, 95, 0, 0, 0, 0, 0, 0, 0,
    + 0, 0, 0, 96, 7, 71, 79, 48, 80, 27,
    + 29, 0, 104, 0, 0, 64, 0, 0, 9, 10,
    + 0, 0, 0, 0, 89, 0, 0, 0, 44, 0,
    + 37, 36, 32, 33, 0, 35, 34, 0, 0, 89,
    + 0, 56, 57, 53, 55, 54, 63, 51, 50, 68,
    + 70, 66, 69, 65, 86, 87, 85, 76, 78, 74,
    + 77, 73, 97, 103, 105, 106, 102, 101, 26, 82,
    + 0, 98, 0, 98, 98, 98, 0, 0, 0, 83,
    + 60, 98, 0, 98, 0, 0, 0, 38, 90, 0,
    + 0, 98, 46, 43, 25, 0, 59, 0, 88, 99,
    + 39, 40, 41, 0, 0, 45, 58, 61, 42, 47
    };

    /* YYDEFGOTO[NTERM-NUM]. */
    static const yytype_int16 yydefgoto[] =
    {
    - -1, 1, 2, 25, 26, 99, 27, 28, 29, 30,
    - 64, 100, 101, 145, 173, 31, 32, 115, 33, 66,
    - 111, 67, 34, 119, 35, 68, 36, 37, 127, 38,
    - 70, 39, 40, 41, 102, 103, 69, 104, 140, 141,
    - 42, 73, 154, 59, 60
    + -1, 1, 2, 25, 26, 101, 27, 28, 29, 30,
    + 65, 102, 103, 147, 175, 31, 32, 117, 33, 67,
    + 113, 68, 34, 121, 35, 69, 36, 37, 129, 38,
    + 71, 39, 40, 41, 104, 105, 70, 106, 142, 143,
    + 42, 74, 156, 60, 61, 51
    };

    /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM. */
    -#define YYPACT_NINF -78
    +#define YYPACT_NINF -80
    static const yytype_int16 yypact[] =
    {
    - -78, 33, 130, -78, -28, 73, 73, 7, 73, 36,
    - 41, 73, 26, 52, -4, 58, -78, -78, -78, -78,
    - -78, -78, -78, 90, -78, 94, -78, -78, -78, -78,
    - -78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
    - -78, -78, -78, -78, -78, -78, 74, 85, -78, 96,
    - -78, -78, 131, 134, 147, -78, -78, -4, -4, 193,
    - -10, -78, 162, 164, 38, 102, 64, 148, 5, 192,
    - 5, 165, -78, 174, -78, -78, -78, -78, -78, 65,
    - -78, -4, -4, 174, 103, 103, -78, -78, 175, 185,
    - 197, 73, 73, -4, 194, 103, -78, 231, -78, -78,
    - -78, -78, 220, -78, -78, 204, 73, 73, 210, -78,
    - -78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
    - -78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
    - -78, -78, 205, -78, -78, -78, -78, -78, -4, 222,
    - 208, 222, 195, 222, 103, 2, 209, -78, -78, 222,
    - 211, 222, 199, -4, 212, -78, -78, 213, 214, 222,
    - 207, -78, -78, 215, -78, 216, -78, 111, -78, -78,
    - -78, 217, 73, -78, -78, -78, -78, -78
    + -80, 2, 132, -80, -13, -1, -1, -2, -1, 9,
    + 33, -1, 27, 40, -3, 38, -80, -80, -80, -80,
    + -80, -80, -80, 71, -80, 77, -80, -80, -80, -80,
    + -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
    + -80, -80, -80, -80, -80, -80, 57, 61, -80, 63,
    + -80, 76, -80, 87, 101, 133, -80, -80, -3, -3,
    + 195, -6, -80, 136, 149, 39, 104, 65, 150, 5,
    + 194, 5, 167, -80, 176, -80, -80, -80, -80, -80,
    + -80, 68, -80, -3, -3, 176, 72, 72, -80, -80,
    + 177, 187, 78, -1, -1, -3, 196, 72, -80, 222,
    + -80, -80, -80, -80, 221, -80, -80, 205, -1, -1,
    + 211, -80, -80, -80, -80, -80, -80, -80, -80, -80,
    + -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
    + -80, -80, -80, -80, 206, -80, -80, -80, -80, -80,
    + -3, 223, 209, 223, 197, 223, 72, 7, 210, -80,
    + -80, 223, 212, 223, 201, -3, 213, -80, -80, 214,
    + 215, 223, 208, -80, -80, 216, -80, 217, -80, 113,
    + -80, -80, -80, 218, -1, -80, -80, -80, -80, -80
    };

    /* YYPGOTO[NTERM-NUM]. */
    static const yytype_int16 yypgoto[] =
    {
    - -78, -78, -78, -78, 121, -35, -78, -78, -78, -78,
    - 219, -78, -78, -78, -78, -78, -78, -78, -44, -78,
    - -78, -78, -78, -78, -78, -78, -78, -78, -78, -6,
    - -78, -78, -78, -78, -78, 183, 218, 21, 143, -5,
    - 146, 196, 69, -53, -77
    + -80, -80, -80, -80, 122, -34, -80, -80, -80, -80,
    + 220, -80, -80, -80, -80, -80, -80, -80, 59, -80,
    + -80, -80, -80, -80, -80, -80, -80, -80, -80, 125,
    + -80, -80, -80, -80, -80, 183, 219, 22, 142, -5,
    + 147, 192, 69, -54, -79, -80
    };

    /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
    @@ -715,62 +721,62 @@ static const yytype_int16 yypgoto[] =
    #define YYTABLE_NINF -82
    static const yytype_int16 yytable[] =
    {
    - 46, 47, 43, 49, 79, 80, 52, 134, 135, 6,
    - 7, 8, 9, 10, 11, 12, 13, 84, 144, 14,
    - 15, 55, 56, 85, 118, 57, 126, 160, 132, 133,
    - 58, 110, 161, 3, 123, 24, 123, 48, -28, 88,
    - 142, -28, -28, -28, -28, -28, -28, -28, -28, -28,
    - 89, 53, -28, -28, 90, -28, 91, 92, 93, 94,
    - 95, 96, 120, 97, 128, 88, 50, 159, 98, -49,
    - -49, 51, -49, -49, -49, -49, 89, 54, -49, -49,
    - 90, 105, 106, 107, 108, 152, 139, 113, 61, 97,
    - 124, 62, 124, 131, 109, 63, 81, 82, 44, 45,
    - 167, 149, -30, 88, 72, -30, -30, -30, -30, -30,
    - -30, -30, -30, -30, 89, 74, -30, -30, 90, -30,
    - 91, 92, 93, 94, 95, 96, 75, 97, 55, 56,
    - -2, 4, 98, 5, 6, 7, 8, 9, 10, 11,
    - 12, 13, 81, 82, 14, 15, 16, 17, 18, 19,
    - 20, 21, 22, 7, 8, 23, 10, 11, 12, 13,
    - 24, 76, 14, 15, 77, -81, 88, 177, -81, -81,
    - -81, -81, -81, -81, -81, -81, -81, 78, 24, -81,
    - -81, 90, -81, -81, -81, -81, -81, -81, 114, 117,
    - 97, 125, 86, 88, 87, 122, -72, -72, -72, -72,
    - -72, -72, -72, -72, 130, 136, -72, -72, 90, 153,
    - 156, 157, 158, 116, 121, 137, 129, 97, 163, 143,
    - 165, 138, 122, 72, 81, 82, 81, 82, 171, 166,
    - 81, 82, 146, 147, 148, 151, 153, 82, 155, 162,
    - 172, 164, 168, 169, 170, 174, 175, 176, 65, 112,
    - 150, 0, 0, 0, 0, 83, 0, 0, 71
    + 46, 47, 3, 49, 81, 82, 53, 136, 137, 6,
    + 7, 8, 9, 10, 11, 12, 13, 43, 146, 14,
    + 15, 86, 56, 57, 44, 45, 58, 87, 48, 134,
    + 135, 59, 162, 112, 50, 24, 125, 163, 125, -28,
    + 90, 144, -28, -28, -28, -28, -28, -28, -28, -28,
    + -28, 91, 54, -28, -28, 92, -28, 93, 94, 95,
    + 96, 97, 98, 52, 99, 55, 90, 161, 62, 100,
    + -49, -49, 63, -49, -49, -49, -49, 91, 64, -49,
    + -49, 92, 107, 108, 109, 110, 154, 73, 141, 115,
    + 99, 75, 126, 76, 126, 111, 133, 56, 57, 83,
    + 84, 169, 140, 151, -30, 90, 77, -30, -30, -30,
    + -30, -30, -30, -30, -30, -30, 91, 78, -30, -30,
    + 92, -30, 93, 94, 95, 96, 97, 98, 120, 99,
    + 128, 79, -2, 4, 100, 5, 6, 7, 8, 9,
    + 10, 11, 12, 13, 83, 84, 14, 15, 16, 17,
    + 18, 19, 20, 21, 22, 7, 8, 23, 10, 11,
    + 12, 13, 24, 80, 14, 15, 88, -81, 90, 179,
    + -81, -81, -81, -81, -81, -81, -81, -81, -81, 89,
    + 24, -81, -81, 92, -81, -81, -81, -81, -81, -81,
    + 116, 119, 99, 127, 122, 90, 130, 124, -72, -72,
    + -72, -72, -72, -72, -72, -72, 132, 138, -72, -72,
    + 92, 155, 158, 159, 160, 118, 123, 139, 131, 99,
    + 165, 145, 167, 148, 124, 73, 83, 84, 83, 84,
    + 173, 168, 83, 84, 149, 150, 153, 155, 84, 157,
    + 164, 174, 166, 170, 171, 172, 176, 177, 178, 66,
    + 114, 152, 85, 0, 0, 0, 0, 0, 0, 72
    };

    static const yytype_int16 yycheck[] =
    {
    - 5, 6, 30, 8, 57, 58, 11, 84, 85, 4,
    - 5, 6, 7, 8, 9, 10, 11, 27, 95, 14,
    - 15, 25, 26, 33, 68, 29, 70, 25, 81, 82,
    - 34, 66, 30, 0, 69, 30, 71, 30, 0, 1,
    - 93, 3, 4, 5, 6, 7, 8, 9, 10, 11,
    - 12, 25, 14, 15, 16, 17, 18, 19, 20, 21,
    - 22, 23, 68, 25, 70, 1, 30, 144, 30, 5,
    - 6, 30, 8, 9, 10, 11, 12, 25, 14, 15,
    - 16, 17, 18, 19, 20, 138, 91, 66, 30, 25,
    - 69, 1, 71, 28, 30, 1, 31, 32, 25, 26,
    - 153, 106, 0, 1, 30, 3, 4, 5, 6, 7,
    - 8, 9, 10, 11, 12, 30, 14, 15, 16, 17,
    - 18, 19, 20, 21, 22, 23, 30, 25, 25, 26,
    - 0, 1, 30, 3, 4, 5, 6, 7, 8, 9,
    - 10, 11, 31, 32, 14, 15, 16, 17, 18, 19,
    - 20, 21, 22, 5, 6, 25, 8, 9, 10, 11,
    - 30, 30, 14, 15, 30, 0, 1, 172, 3, 4,
    - 5, 6, 7, 8, 9, 10, 11, 30, 30, 14,
    - 15, 16, 17, 18, 19, 20, 21, 22, 67, 68,
    - 25, 70, 30, 1, 30, 30, 4, 5, 6, 7,
    - 8, 9, 10, 11, 30, 30, 14, 15, 16, 14,
    - 141, 142, 143, 67, 68, 30, 70, 25, 149, 25,
    - 151, 24, 30, 30, 31, 32, 31, 32, 159, 30,
    - 31, 32, 1, 13, 30, 25, 14, 32, 30, 30,
    - 33, 30, 30, 30, 30, 30, 30, 30, 29, 66,
    - 107, -1, -1, -1, -1, 59, -1, -1, 40
    + 5, 6, 0, 8, 58, 59, 11, 86, 87, 4,
    + 5, 6, 7, 8, 9, 10, 11, 30, 97, 14,
    + 15, 27, 25, 26, 25, 26, 29, 33, 30, 83,
    + 84, 34, 25, 67, 25, 30, 70, 30, 72, 0,
    + 1, 95, 3, 4, 5, 6, 7, 8, 9, 10,
    + 11, 12, 25, 14, 15, 16, 17, 18, 19, 20,
    + 21, 22, 23, 30, 25, 25, 1, 146, 30, 30,
    + 5, 6, 1, 8, 9, 10, 11, 12, 1, 14,
    + 15, 16, 17, 18, 19, 20, 140, 30, 93, 67,
    + 25, 30, 70, 30, 72, 30, 28, 25, 26, 31,
    + 32, 155, 24, 108, 0, 1, 30, 3, 4, 5,
    + 6, 7, 8, 9, 10, 11, 12, 30, 14, 15,
    + 16, 17, 18, 19, 20, 21, 22, 23, 69, 25,
    + 71, 30, 0, 1, 30, 3, 4, 5, 6, 7,
    + 8, 9, 10, 11, 31, 32, 14, 15, 16, 17,
    + 18, 19, 20, 21, 22, 5, 6, 25, 8, 9,
    + 10, 11, 30, 30, 14, 15, 30, 0, 1, 174,
    + 3, 4, 5, 6, 7, 8, 9, 10, 11, 30,
    + 30, 14, 15, 16, 17, 18, 19, 20, 21, 22,
    + 68, 69, 25, 71, 69, 1, 71, 30, 4, 5,
    + 6, 7, 8, 9, 10, 11, 30, 30, 14, 15,
    + 16, 14, 143, 144, 145, 68, 69, 30, 71, 25,
    + 151, 25, 153, 1, 30, 30, 31, 32, 31, 32,
    + 161, 30, 31, 32, 13, 30, 25, 14, 32, 30,
    + 30, 33, 30, 30, 30, 30, 30, 30, 30, 29,
    + 67, 109, 60, -1, -1, -1, -1, -1, -1, 40
    };

    /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    @@ -782,19 +788,19 @@ static const yytype_uint8 yystos[] =
    20, 21, 22, 25, 30, 38, 39, 41, 42, 43,
    44, 50, 51, 53, 57, 59, 61, 62, 64, 66,
    67, 68, 75, 30, 25, 26, 74, 74, 30, 74,
    - 30, 30, 74, 25, 25, 25, 26, 29, 34, 78,
    - 79, 30, 1, 1, 45, 45, 54, 56, 60, 71,
    - 65, 71, 30, 76, 30, 30, 30, 30, 30, 78,
    - 78, 31, 32, 76, 27, 33, 30, 30, 1, 12,
    - 16, 18, 19, 20, 21, 22, 23, 25, 30, 40,
    - 46, 47, 69, 70, 72, 17, 18, 19, 20, 30,
    - 40, 55, 70, 72, 39, 52, 75, 39, 53, 58,
    - 64, 75, 30, 40, 72, 39, 53, 63, 64, 75,
    - 30, 28, 78, 78, 79, 79, 30, 30, 24, 74,
    - 73, 74, 78, 25, 79, 48, 1, 13, 30, 74,
    - 73, 25, 78, 14, 77, 30, 77, 77, 77, 79,
    - 25, 30, 30, 77, 30, 77, 30, 78, 30, 30,
    - 30, 77, 33, 49, 30, 30, 30, 74
    + 25, 80, 30, 74, 25, 25, 25, 26, 29, 34,
    + 78, 79, 30, 1, 1, 45, 45, 54, 56, 60,
    + 71, 65, 71, 30, 76, 30, 30, 30, 30, 30,
    + 30, 78, 78, 31, 32, 76, 27, 33, 30, 30,
    + 1, 12, 16, 18, 19, 20, 21, 22, 23, 25,
    + 30, 40, 46, 47, 69, 70, 72, 17, 18, 19,
    + 20, 30, 40, 55, 70, 72, 39, 52, 75, 39,
    + 53, 58, 64, 75, 30, 40, 72, 39, 53, 63,
    + 64, 75, 30, 28, 78, 78, 79, 79, 30, 30,
    + 24, 74, 73, 74, 78, 25, 79, 48, 1, 13,
    + 30, 74, 73, 25, 78, 14, 77, 30, 77, 77,
    + 77, 79, 25, 30, 30, 77, 30, 77, 30, 78,
    + 30, 30, 30, 77, 33, 49, 30, 30, 30, 74
    };

    #define yyerrok (yyerrstatus = 0)
    @@ -1781,8 +1787,8 @@ yyreduce:
    case 48:

    {
    - struct symbol *sym = sym_lookup(NULL, 0);
    - sym->flags |= SYMBOL_CHOICE;
    + struct symbol *sym = sym_lookup((yyvsp[(2) - (3)].string), SYMBOL_CHOICE);
    + sym->flags |= SYMBOL_AUTO;
    menu_add_entry(sym);
    menu_add_expr(P_CHOICE, NULL, NULL);
    printd(DEBUG_PARSE, "%s:%d:choice\n", zconf_curname(), zconf_lineno());
    @@ -2014,7 +2020,12 @@ yyreduce:

    case 108:

    - { (yyval.symbol) = sym_lookup((yyvsp[(1) - (1)].string), 1); free((yyvsp[(1) - (1)].string)); ;}
    + { (yyval.symbol) = sym_lookup((yyvsp[(1) - (1)].string), SYMBOL_CONST); free((yyvsp[(1) - (1)].string)); ;}
    + break;
    +
    + case 109:
    +
    + { (yyval.string) = NULL; ;}
    break;


    Index: linux-2.6/scripts/kconfig/zconf.y
    ================================================== =================
    --- linux-2.6.orig/scripts/kconfig/zconf.y
    +++ linux-2.6/scripts/kconfig/zconf.y
    @@ -91,7 +91,7 @@ static struct menu *current_menu, *curre
    %type end
    %type option_name
    %type if_entry menu_entry choice_entry
    -%type symbol_option_arg
    +%type symbol_option_arg word_opt

    %destructor {
    fprintf(stderr, "%s:%d: missing end statement for this entry\n",
    @@ -239,10 +239,10 @@ symbol_option_arg:

    /* choice entry */

    -choice: T_CHOICE T_EOL
    +choice: T_CHOICE word_opt T_EOL
    {
    - struct symbol *sym = sym_lookup(NULL, 0);
    - sym->flags |= SYMBOL_CHOICE;
    + struct symbol *sym = sym_lookup($2, SYMBOL_CHOICE);
    + sym->flags |= SYMBOL_AUTO;
    menu_add_entry(sym);
    menu_add_expr(P_CHOICE, NULL, NULL);
    printd(DEBUG_PARSE, "%s:%d:choice\n", zconf_curname(), zconf_lineno());
    @@ -456,9 +456,12 @@ expr: symbol { $$ = expr_alloc_symb
    ;

    symbol: T_WORD { $$ = sym_lookup($1, 0); free($1); }
    - | T_WORD_QUOTE { $$ = sym_lookup($1, 1); free($1); }
    + | T_WORD_QUOTE { $$ = sym_lookup($1, SYMBOL_CONST); free($1); }
    ;

    +word_opt: /* empty */ { $$ = NULL; }
    + | T_WORD
    +
    %%

    void conf_parse(const char *name)
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  3. Re: [PATCH 1/3] fix recursive dependencies

    On Thu, Feb 28, 2008 at 8:09 PM, Roman Zippel wrote:
    > Hi,
    >
    > On Tue, 26 Feb 2008, Sam Ravnborg wrote:
    >
    > > We discovered a situation where we could set a
    > > choice value in menuconfig but later when we either was
    > > running menuconfig or oldconfig the value were changed.

    >
    > The patch fixes these dependency problems.
    >
    > bye, Roman
    >
    >
    > The proper dependency check uncovered a few dependency problems,
    > the subarchitecture used a mixture of selects and depends on SMP
    > and PCI dependency was messed up.
    >
    > Signed-off-by: Roman Zippel
    >
    > ---

    Ingo,

    please drop
    x86: PARAVIRT needed by PARAVIRT_GUEST or X86_VSMP
    x86: vSMP selection in config
    in x86.git#testing to use Roman's three patches.

    Thanks

    Yinghai Lu
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  4. Re: [PATCH 1/3] fix recursive dependencies

    Hi,

    On Thu, 28 Feb 2008, Yinghai Lu wrote:

    > x86: PARAVIRT needed by PARAVIRT_GUEST or X86_VSMP
    > x86: vSMP selection in config


    Sorry, I hadn't seen there already was a followup.

    > in x86.git#testing to use Roman's three patches.


    Only the first patch needs merging, the other two can wait a little.

    bye, Roman
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  5. Re: [PATCH 1/3] fix recursive dependencies

    On Fri, Feb 29, 2008 at 02:22:01PM +0100, Roman Zippel wrote:
    > Hi,
    >
    > On Thu, 28 Feb 2008, Yinghai Lu wrote:
    >
    > > x86: PARAVIRT needed by PARAVIRT_GUEST or X86_VSMP
    > > x86: vSMP selection in config

    >
    > Sorry, I hadn't seen there already was a followup.
    >
    > > in x86.git#testing to use Roman's three patches.

    >
    > Only the first patch needs merging, the other two can wait a little.

    Agreed. I will take the latter two in kbuild.git.
    The first one belong in x86.git.

    Sam
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  6. Re: [PATCH 1/3] fix recursive dependencies


    * Sam Ravnborg wrote:

    > > > in x86.git#testing to use Roman's three patches.

    > >
    > > Only the first patch needs merging, the other two can wait a little.

    > Agreed. I will take the latter two in kbuild.git.
    > The first one belong in x86.git.


    i've picked up Roman's fix for 2.6.25 merging.

    Ingo
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  7. Re: [PATCH 1/3] fix recursive dependencies


    * Roman Zippel wrote:

    > The proper dependency check uncovered a few dependency problems, the
    > subarchitecture used a mixture of selects and depends on SMP and PCI
    > dependency was messed up.


    thanks Roman, applied.

    Ingo
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  8. Re: [PATCH 2/3] fix choice dependency check

    On Fri, Feb 29, 2008 at 05:10:24AM +0100, Roman Zippel wrote:
    >
    > Properly check the dependency of choices as a group.
    > Also fix that sym_check_deps() correctly terminates the dependency loop
    > error check (otherwise it would continue printing the dependency chain).
    >
    > Signed-off-by: Roman Zippel


    Hi Roman.

    I realised this was never applied - so I did so now.
    Same with the one with named choice groups.

    Sam
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

+ Reply to Thread
Page 3 of 3 FirstFirst 1 2 3