]> git.itanic.dy.fi Git - linux-stable/commit
kconfig: do not clear SYMBOL_DEF_USER when the value is out of range
authorMasahiro Yamada <masahiroy@kernel.org>
Sun, 5 Nov 2023 18:10:47 +0000 (03:10 +0900)
committerMasahiro Yamada <masahiroy@kernel.org>
Tue, 28 Nov 2023 02:22:50 +0000 (11:22 +0900)
commitce1fc9345a59c55d3a46dd7da872791cae41324e
tree806fd050b7452f348094e6da1a209294e0e53698
parent96a29581e735bcf3b4e5a4f2daad9f445025f510
kconfig: do not clear SYMBOL_DEF_USER when the value is out of range

When a user-supplied value is out of range, (NEW) and an incorrect default
value are shown.

[Test Kconfig]

  config FOO
          int "foo"
          range 10 20

[Test .config]

  CONFIG_FOO=30

[Result without this fix]

  $ make config
  *
  * Main menu
  *
  foo (FOO) [10] (NEW)

[Result with this fix]

  $ make config
  *
  * Main menu
  *
  foo (FOO) [20]

Currently, the SYMBOL_DEF_USER is cleared if the user input does not
reside within the range. Kconfig forgets the initial value 30, and
prints (NEW) and an incorrect default [10].

Kconfig should remember the user's input. The default should be [20]
because the user's input, 30, is closer to the upper limit of the range.

Please note it will not show up in "make oldconfig" because it is no
longer considered as a new symbol. It also fixes the inconsistent
behavior in listnewconfig/helpnewconfig.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
scripts/kconfig/confdata.c