diff options
Diffstat (limited to 'scripts/kconfig/confdata.c')
| -rw-r--r-- | scripts/kconfig/confdata.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c index c39327e60ea4..515253fe46cf 100644 --- a/scripts/kconfig/confdata.c +++ b/scripts/kconfig/confdata.c | |||
| @@ -497,7 +497,9 @@ int conf_write_defconfig(const char *filename) | |||
| 497 | /* | 497 | /* |
| 498 | * If symbol is a choice value and equals to the | 498 | * If symbol is a choice value and equals to the |
| 499 | * default for a choice - skip. | 499 | * default for a choice - skip. |
| 500 | * But only if value is bool and equal to "y" . | 500 | * But only if value is bool and equal to "y" and |
| 501 | * choice is not "optional". | ||
| 502 | * (If choice is "optional" then all values can be "n") | ||
| 501 | */ | 503 | */ |
| 502 | if (sym_is_choice_value(sym)) { | 504 | if (sym_is_choice_value(sym)) { |
| 503 | struct symbol *cs; | 505 | struct symbol *cs; |
| @@ -505,7 +507,7 @@ int conf_write_defconfig(const char *filename) | |||
| 505 | 507 | ||
| 506 | cs = prop_get_symbol(sym_get_choice_prop(sym)); | 508 | cs = prop_get_symbol(sym_get_choice_prop(sym)); |
| 507 | ds = sym_choice_default(cs); | 509 | ds = sym_choice_default(cs); |
| 508 | if (sym == ds) { | 510 | if (!sym_is_optional(cs) && sym == ds) { |
| 509 | if ((sym->type == S_BOOLEAN) && | 511 | if ((sym->type == S_BOOLEAN) && |
| 510 | sym_get_tristate_value(sym) == yes) | 512 | sym_get_tristate_value(sym) == yes) |
| 511 | goto next_menu; | 513 | goto next_menu; |
