]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - scripts/kconfig/symbol.c
[PATCH] kconfig: fix restart for choice symbols
[linux-2.6-omap-h63xx.git] / scripts / kconfig / symbol.c
index 10d96c4188dddc6fbbed52e2aaabddc43d3417ee..29bff43adc5e021d46f05727b3d3709d80720dde 100644 (file)
@@ -380,11 +380,22 @@ bool sym_set_tristate_value(struct symbol *sym, tristate val)
                sym->flags &= ~SYMBOL_NEW;
                sym_set_changed(sym);
        }
+       /*
+        * setting a choice value also resets the new flag of the choice
+        * symbol and all other choice values.
+        */
        if (sym_is_choice_value(sym) && val == yes) {
                struct symbol *cs = prop_get_symbol(sym_get_choice_prop(sym));
+               struct property *prop;
+               struct expr *e;
 
                cs->user.val = sym;
                cs->flags &= ~SYMBOL_NEW;
+               prop = sym_get_choice_prop(cs);
+               for (e = prop->expr; e; e = e->left.expr) {
+                       if (e->right.sym->visible != no)
+                               e->right.sym->flags &= ~SYMBOL_NEW;
+               }
        }
 
        sym->user.tri = val;