mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-26 18:43:33 -05:00
kconfig: initialize sym->curr.tri to 'no' for all symbol types again
Geert Uytterhoeven reported that commit4e244c10ea
("kconfig: remove unneeded symbol_empty variable") changed the default value of CONFIG_LOG_CPU_MAX_BUF_SHIFT from 12 to 0. As it turned out, this is an undefined behavior because sym_calc_value() stopped setting the sym->curr.tri field for 'int', 'hex', and 'string' symbols. This commit restores the original behavior, where 'int', 'hex', 'string' symbols are interpreted as false if used in boolean contexts. CONFIG_LOG_CPU_MAX_BUF_SHIFT will default to 12 again, irrespective of CONFIG_BASE_SMALL. Presumably, this is not the intended behavior, as already reported [1], but this is another issue that should be addressed by a separate patch. [1]: https://lore.kernel.org/all/f6856be8-54b7-0fa0-1d17-39632bf29ada@oracle.com/ Fixes:4e244c10ea
("kconfig: remove unneeded symbol_empty variable") Reported-by: Geert Uytterhoeven <geert+renesas@glider.be> Closes: https://lore.kernel.org/all/CAMuHMdWm6u1wX7efZQf=2XUAHascps76YQac6rdnQGhc8nop_Q@mail.gmail.com/ Tested-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
This commit is contained in:
parent
358de8b4f2
commit
bfef491df6
1 changed files with 3 additions and 1 deletions
|
@ -345,6 +345,8 @@ void sym_calc_value(struct symbol *sym)
|
|||
|
||||
oldval = sym->curr;
|
||||
|
||||
newval.tri = no;
|
||||
|
||||
switch (sym->type) {
|
||||
case S_INT:
|
||||
newval.val = "0";
|
||||
|
@ -357,7 +359,7 @@ void sym_calc_value(struct symbol *sym)
|
|||
break;
|
||||
case S_BOOLEAN:
|
||||
case S_TRISTATE:
|
||||
newval = symbol_no.curr;
|
||||
newval.val = "n";
|
||||
break;
|
||||
default:
|
||||
sym->curr.val = sym->name;
|
||||
|
|
Loading…
Add table
Reference in a new issue