On 22.4.2013 23:31, Yann E. MORIN wrote: > diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c > index 13ddf11..8d8d853 100644 > --- a/scripts/kconfig/confdata.c > +++ b/scripts/kconfig/confdata.c > @@ -1106,7 +1106,16 @@ static void set_all_choice_values(struct symbol *csym) > void conf_set_all_new_symbols(enum conf_def_mode mode) > { > struct symbol *sym, *csym; > - int i, cnt; > + int i, cnt, prob = 50; > + [...] > case def_random: > - cnt = sym_get_type(sym) == S_TRISTATE ? 3 : 2; > - sym->def[S_DEF_USER].tri = (tristate)(rand() % cnt); > + cnt = (rand() % 100) - (100 - prob); > + if (cnt < 0) > + sym->def[S_DEF_USER].tri = no; > + else > + if ((sym_get_type(sym) == S_TRISTATE) > + && (cnt > prob/2)) > + sym->def[S_DEF_USER].tri = mod; > + else > + sym->def[S_DEF_USER].tri = yes; Previously, the distribution was 50%-50% for boolean options and 33%-33%-33% for tristate options. Now the default for tristate options changed to 50%-25%-25% (no-mod-yes). Wouldn't it make more sense to have a special case for KCONFIG_PROBABILITY not set, that would use the same distribution as before. I.e. if (prob == -1) { cnt = sym_get_type(sym) == S_TRISTATE ? 3 : 2; sym->def[S_DEF_USER].tri = (tristate)(rand() % cnt); } else { /* new math */ } Not building half of all drivers is rather boring :) Thanks, Michal -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html