On Sat, Sep 14, 2024 at 2:13 AM David Hunter <david.hunter.linux@xxxxxxxxx> wrote: > > The goal of "make localmodconfig" is to turn off modules that are not > necessary. Some modules are necessary because they are depended on by > config options set with a "y." > > Process configs set to "y" so that the modules that are depended on > will not be turned off later. You need to put the explanation in the cover letter. Without reading the cover-letter, I do not understand why this change is needed. > Signed-off-by: David Hunter <david.hunter.linux@xxxxxxxxx> > --- > scripts/kconfig/streamline_config.pl | 13 ++++++++++--- > 1 file changed, 10 insertions(+), 3 deletions(-) > > diff --git a/scripts/kconfig/streamline_config.pl b/scripts/kconfig/streamline_config.pl > index 948437aac535..762bf80408c7 100755 > --- a/scripts/kconfig/streamline_config.pl > +++ b/scripts/kconfig/streamline_config.pl > @@ -466,6 +466,11 @@ foreach my $line (@config_file) { > > if (/(CONFIG_[$valid]*)=(m|y)/) { > $orig_configs{$1} = $2; > + # all configs options set to 'y' need to be processed > + if($2 eq "y") { > + $configs{$1}= $2; > + } > + You are breaking the indentation style. Check how the current code is indented. (tab and spaces). A space is needed after 'if' for coding style consistency. > } > } > > @@ -596,9 +601,11 @@ sub loop_depend { > forloop: > foreach my $config (keys %configs) { > > - # If this config is not a module, we do not need to process it > - if (defined($orig_configs{$config}) && $orig_configs{$config} ne "m") { > - next forloop; > + # If this config is not set in the original config, > + # we do not need to process it > + if (defined($orig_configs{$config}) && $orig_configs{$config} ne "m" > + && $orig_configs{$config} ne "y") { > + next forloop; > } I do not understand the condition: defined($orig_configs{$config}) && $orig_configs{$config} ne "m" && $orig_configs{$config} ne "y" Is there any case when this condition is met? > $config =~ s/^CONFIG_//; > -- > 2.43.0 > -- Best Regards Masahiro Yamada