linux/scripts
Kees Cook 0902b3cb23 kconfig: Avoid prompting for transitional symbols
The "transitional" symbol keyword, while working with the "olddefconfig"
target, was prompting during "oldconfig". This occurred because these
symbols were not being marked as user-defined when they received values
from transitional symbols that had user values. The "olddefconfig" target
explicitly doesn't prompt for anything, so this deficiency wasn't noticed.

The issue manifested when a symbol's value came from a transitional
symbol's user value but the receiving symbol wasn't marked with
SYMBOL_DEF_USER. Thus the "oldconfig" logic would then prompt for these
symbols unnecessarily.

Check after value calculation whether a symbol without a user value
gets its value from a single transitional symbol that does have a user
value. In such cases, mark the receiving symbol as user-defined to
prevent prompting.

Update regression tests to verify that symbols with transitional defaults
are not prompted in "oldconfig", except when conditional defaults evaluate
to 'no' and should legitimately be prompted.

Build tested with "make testconfig".

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Closes: https://lore.kernel.org/lkml/CAHk-=wgZjUk4Cy2XgNkTrQoO8XCmNUHrTe5D519Fij1POK+3qw@mail.gmail.com/
Fixes: f9afce4f32 ("kconfig: Add transitional symbol attribute for migration support")
Cc: Vegard Nossum <vegard.nossum@oracle.com>
Link: https://lore.kernel.org/r/20250930154514.it.623-kees@kernel.org
Signed-off-by: Kees Cook <kees@kernel.org>
2025-10-07 08:21:23 -07:00
..
atomic rust: Introduce atomic API helpers 2025-09-15 09:38:32 +02:00
bash-completion
basic integer-wrap: Force full rebuild when .scl file changes 2025-05-08 09:42:06 -07:00
clang-tools
coccinelle Patch series in this pull request: 2025-10-02 18:44:54 -07:00
crypto lib/crypto: tests: Add KUnit tests for BLAKE2s 2025-08-29 09:50:19 -07:00
dtc scripts: dt_to_config: fix grammar and a typo in --help text 2025-09-26 15:53:30 -05:00
dummy-tools
gcc-plugins gcc-plugins: Remove TODO_verify_il for GCC >= 16 2025-09-23 13:59:39 -07:00
gdb hrtimer: Remove hrtimer_clock_base:: Get_time 2025-09-09 12:27:18 +02:00
gendwarfksyms gendwarfksyms: order -T symtypes output by name 2025-07-26 15:31:30 +09:00
genksyms genksyms: Fix enum consts from a reference affecting new values 2025-06-07 14:38:07 +09:00
include
ipe
kconfig kconfig: Avoid prompting for transitional symbols 2025-10-07 08:21:23 -07:00
ksymoops
lib docs: kdoc: a few more dump_typedef() tweaks 2025-09-18 10:19:54 -06:00
mod modpost: Initialize builtin_modname to stop SIGSEGVs 2025-09-28 07:54:07 -04:00
package kbuild: rpm-pkg: Add (elfutils-devel or libdw-devel) to BuildRequires 2025-05-12 15:03:17 +09:00
selinux docs: Remove remainders of reiserfs 2025-08-18 10:45:43 -06:00
tracing
.gitignore
as-version.sh
asn1_compiler.c
bloat-o-meter
bootgraph.pl
bpf_doc.py scripts/bpf_doc.py: implement json output format 2025-05-09 11:31:23 -07:00
build-version
cc-can-link.sh
cc-version.sh
check_extable.sh
check-git
check-sysctl-docs docs: Replace spaces with tabs in check-sysctl-docs 2025-07-23 11:57:05 +02:00
check-uapi.sh
check-variable-fonts.sh
checkdeclares.pl
checkincludes.pl
checkkconfigsymbols.py
checkpatch.pl checkpatch: suppress strscpy warnings for userspace tools 2025-09-28 11:36:13 -07:00
checkstack.pl
checksyscalls.sh
checktransupdate.py scripts: add origin commit identification based on specific patterns 2025-07-24 08:41:15 -06:00
checkversion.pl
cleanfile
cleanpatch
coccicheck
config
const_structs.checkpatch const_structs.checkpatch: add bin_attribute 2025-06-17 10:44:07 +02:00
decode_stacktrace.sh scripts/decode_stacktrace.sh: code: preserve alignment 2025-09-21 14:22:28 -07:00
decodecode
depmod.sh
dev-needs.sh
diffconfig
documentation-file-ref-check
extract_xc3028.pl
extract-fwblobs
extract-ikconfig
extract-module-sig.pl
extract-sys-certs.pl
extract-vmlinux extract-vmlinux: Output used decompression method 2025-08-28 15:25:48 -07:00
faddr2line
file-size.sh
find-unused-docs.sh
gen_packed_field_checks.c
gen-crc-consts.py
gen-randstruct-seed.sh
generate_builtin_ranges.awk
generate_initcall_order.pl
generate_rust_analyzer.py rust: add pin-init as a dependency to bindings and uapi 2025-09-08 13:42:39 +02:00
generate_rust_target.rs rust: support Rust >= 1.91.0 target spec 2025-08-31 23:34:34 +02:00
get_abi.py
get_dvb_firmware
get_feat.pl
get_maintainer.pl
gfp-translate
git-resolve.sh
git.orderFile
head-object-list.txt
headerdep.pl
headers_install.sh uapi: wrap compiler_types.h in an ifdef instead of the implicit strip 2025-08-28 13:06:48 +02:00
insert-sys-cert.c
install.sh
integer-wrap-ignore.scl
jobserver-exec
kallsyms.c
Kbuild.include
Kconfig.include
kernel-doc
kernel-doc.pl
kernel-doc.py docs: kernel-doc: avoid script crash on ancient Python 2025-08-11 10:54:29 -06:00
ld-version.sh
leaking_addresses.pl
Lindent
link-vmlinux.sh kbuild: vmlinux.unstripped should always depend on .vmlinux.export.o 2025-09-24 09:10:45 -07:00
macro_checker.py
make_fit.py
Makefile
Makefile.asm-headers
Makefile.autofdo
Makefile.btf
Makefile.build Rust changes for v6.17 2025-08-03 13:49:10 -07:00
Makefile.clang
Makefile.clean
Makefile.compiler require gcc-8 and binutils-2.30 2025-05-31 08:16:52 -07:00
Makefile.debug
Makefile.defconf
Makefile.dtbinst
Makefile.dtbs scripts/dtc: Update to upstream version v1.7.2-35-g52f07dcca47c 2025-08-11 08:08:51 -05:00
Makefile.extrawarn kbuild: enable -Werror for hostprogs 2025-08-18 10:02:57 -07:00
Makefile.gcc-plugins stackleak: Split KSTACK_ERASE_CFLAGS from GCC_PLUGINS_CFLAGS 2025-07-21 21:40:57 -07:00
Makefile.headersinst
Makefile.host
Makefile.kasan kasan: fix GCC mem-intrinsic prefix with sw tags 2025-08-27 22:45:43 -07:00
Makefile.kcov - The 2 patch series "zram: support algorithm-specific parameters" from 2025-06-02 16:00:26 -07:00
Makefile.kcsan
Makefile.kmsan
Makefile.kstack_erase kstack_erase: Fix missed export of renamed KSTACK_ERASE_CFLAGS 2025-07-29 17:17:46 -07:00
Makefile.lib Kbuild updates for v6.16 2025-06-07 10:05:35 -07:00
Makefile.modfinal
Makefile.modinst
Makefile.modpost
Makefile.package
Makefile.propeller
Makefile.randstruct
Makefile.ubsan ARM: 2025-05-29 08:10:01 -07:00
Makefile.userprogs
Makefile.vdsoinst
Makefile.vmlinux kbuild: vmlinux.unstripped should always depend on .vmlinux.export.o 2025-09-24 09:10:45 -07:00
Makefile.vmlinux_o kbuild: extract modules.builtin.modinfo from vmlinux.unstripped 2025-09-24 09:10:44 -07:00
makelst
markup_oops.pl
min-tool-version.sh kbuild: Bump minimum version of LLVM for building the kernel to 15.0.0 2025-08-28 16:58:43 -07:00
misc-check scripts/misc-check: update export checks for EXPORT_SYMBOL_FOR_MODULES() 2025-08-26 12:00:17 -07:00
mkcompile_h
mksysmap modpost: Create modalias for builtin modules 2025-09-24 09:10:45 -07:00
mkuboot.sh
module-common.c
module.lds.S alloc_tag: remove empty module tag section 2025-07-09 22:42:03 -07:00
modules-check.sh
nsdeps
objdiff
objdump-func
orc_hash.sh
pahole-version.sh
parse-maintainers.pl
patch-kernel
profile2linkerlist.pl
prune-kernel
recordmcount.c
recordmcount.h
recordmcount.pl tracing: Remove redundant config HAVE_FTRACE_MCOUNT_RECORD 2025-07-22 20:15:56 -04:00
relocs_check.sh
remove-stale-files
rust_is_available_bindgen_0_66.h
rust_is_available_bindgen_libclang_concat.h
rust_is_available_bindgen_libclang.h
rust_is_available_test.py
rust_is_available.sh
rustc-llvm-version.sh
rustc-version.sh
rustdoc_test_builder.rs rust: use absolute paths in macros referencing core and kernel 2025-05-23 00:12:14 +02:00
rustdoc_test_gen.rs rust: kunit: use kernel::{fmt,prelude::fmt!} 2025-09-16 09:26:59 +02:00
setlocalversion
show_delta
sign-file.c
sorttable.c
spdxcheck-test.sh
spdxcheck.py
spdxexclude
spelling.txt scripts/spelling.txt: add notifer||notifier to spelling.txt 2025-08-02 12:01:40 -07:00
sphinx-build-wrapper scripts: sphinx-build-wrapper: get rid of uapi/media Makefile 2025-08-29 15:54:43 -06:00
sphinx-pre-install scripts/sphinx-pre-install: fix Archlinux PDF dependencies 2025-08-21 14:08:53 -06:00
split-man.pl
ssl-common.h
stackdelta
stackusage
subarch.include
syscall.tbl fs: introduce file_getattr and file_setattr syscalls 2025-07-02 17:05:17 +02:00
syscallhdr.sh
syscallnr.sh
syscalltbl.sh
tags.sh scripts/tags.sh: allow to use alternative ctags implementation 2025-06-06 05:40:25 +09:00
test_doc_build.py scripts: test_doc_build.py: regroup and rename arguments 2025-06-25 12:22:48 -06:00
tools-support-relr.sh
unifdef.c
ver_linux ver_linux: Remove checks for reiserfsprogs. 2025-06-09 14:53:16 -06:00
verify_builtin_ranges.awk
xen-hypercalls.sh
xz_wrap.sh