* [PATCH] kconfig: Add `make mod2noconfig` to disable module options
@ 2021-10-17 17:43 Josh Triplett
2021-11-17 10:45 ` Björn Töpel
0 siblings, 1 reply; 3+ messages in thread
From: Josh Triplett @ 2021-10-17 17:43 UTC (permalink / raw)
To: Masahiro Yamada; +Cc: linux-kbuild, linux-kernel
When converting a modular kernel to a monolithic kernel, once the kernel
works without loading any modules, this helps to quickly disable all the
modules before turning off module support entirely.
Refactor conf_rewrite_mod_or_yes to a more general
conf_rewrite_tristates that accepts an old and new state.
Signed-off-by: Josh Triplett <josh@joshtriplett.org>
---
scripts/kconfig/Makefile | 3 ++-
scripts/kconfig/conf.c | 17 ++++++++++-------
2 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index 5a215880b268..b8ef0fb4bbef 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -69,7 +69,7 @@ localyesconfig localmodconfig: $(obj)/conf
# deprecated for external use
simple-targets := oldconfig allnoconfig allyesconfig allmodconfig \
alldefconfig randconfig listnewconfig olddefconfig syncconfig \
- helpnewconfig yes2modconfig mod2yesconfig
+ helpnewconfig yes2modconfig mod2yesconfig mod2noconfig
PHONY += $(simple-targets)
@@ -134,6 +134,7 @@ help:
@echo ' randconfig - New config with random answer to all options'
@echo ' yes2modconfig - Change answers from yes to mod if possible'
@echo ' mod2yesconfig - Change answers from mod to yes if possible'
+ @echo ' mod2noconfig - Change answers from mod to no if possible'
@echo ' listnewconfig - List new options'
@echo ' helpnewconfig - List new options and help text'
@echo ' olddefconfig - Same as oldconfig but sets new symbols to their'
diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
index 5d84b44a2a2a..5535dddab770 100644
--- a/scripts/kconfig/conf.c
+++ b/scripts/kconfig/conf.c
@@ -35,6 +35,7 @@ enum input_mode {
olddefconfig,
yes2modconfig,
mod2yesconfig,
+ mod2noconfig,
};
static enum input_mode input_mode = oldaskconfig;
static int input_mode_opt;
@@ -163,8 +164,6 @@ enum conf_def_mode {
def_default,
def_yes,
def_mod,
- def_y2m,
- def_m2y,
def_no,
def_random
};
@@ -302,12 +301,10 @@ static bool conf_set_all_new_symbols(enum conf_def_mode mode)
return has_changed;
}
-static void conf_rewrite_mod_or_yes(enum conf_def_mode mode)
+static void conf_rewrite_tristates(tristate old_val, tristate new_val)
{
struct symbol *sym;
int i;
- tristate old_val = (mode == def_y2m) ? yes : mod;
- tristate new_val = (mode == def_y2m) ? mod : yes;
for_all_symbols(i, sym) {
if (sym_get_type(sym) == S_TRISTATE &&
@@ -696,6 +693,7 @@ static const struct option long_opts[] = {
{"olddefconfig", no_argument, &input_mode_opt, olddefconfig},
{"yes2modconfig", no_argument, &input_mode_opt, yes2modconfig},
{"mod2yesconfig", no_argument, &input_mode_opt, mod2yesconfig},
+ {"mod2noconfig", no_argument, &input_mode_opt, mod2noconfig},
{NULL, 0, NULL, 0}
};
@@ -724,6 +722,7 @@ static void conf_usage(const char *progname)
printf(" --randconfig New config with random answer to all options\n");
printf(" --yes2modconfig Change answers from yes to mod if possible\n");
printf(" --mod2yesconfig Change answers from mod to yes if possible\n");
+ printf(" --mod2noconfig Change answers from mod to no if possible\n");
printf(" (If none of the above is given, --oldaskconfig is the default)\n");
}
@@ -799,6 +798,7 @@ int main(int ac, char **av)
case olddefconfig:
case yes2modconfig:
case mod2yesconfig:
+ case mod2noconfig:
conf_read(NULL);
break;
case allnoconfig:
@@ -873,10 +873,13 @@ int main(int ac, char **av)
case savedefconfig:
break;
case yes2modconfig:
- conf_rewrite_mod_or_yes(def_y2m);
+ conf_rewrite_tristates(yes, mod);
break;
case mod2yesconfig:
- conf_rewrite_mod_or_yes(def_m2y);
+ conf_rewrite_tristates(mod, yes);
+ break;
+ case mod2noconfig:
+ conf_rewrite_tristates(mod, no);
break;
case oldaskconfig:
rootEntry = &rootmenu;
--
2.33.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH] kconfig: Add `make mod2noconfig` to disable module options
2021-10-17 17:43 [PATCH] kconfig: Add `make mod2noconfig` to disable module options Josh Triplett
@ 2021-11-17 10:45 ` Björn Töpel
2021-11-20 15:41 ` Masahiro Yamada
0 siblings, 1 reply; 3+ messages in thread
From: Björn Töpel @ 2021-11-17 10:45 UTC (permalink / raw)
To: josh; +Cc: linux-kbuild, linux-kernel, masahiroy, Björn Töpel
Josh Triplett wrote:
> When converting a modular kernel to a monolithic kernel, once the kernel
> works without loading any modules, this helps to quickly disable all the
> modules before turning off module support entirely.
>
> Refactor conf_rewrite_mod_or_yes to a more general
> conf_rewrite_tristates that accepts an old and new state.
>
> Signed-off-by: Josh Triplett <josh@joshtriplett.org>
Hmm, I don't think this was picked up yet?
FWIW,
Tested-by: Björn Töpel <bjorn@kernel.org>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] kconfig: Add `make mod2noconfig` to disable module options
2021-11-17 10:45 ` Björn Töpel
@ 2021-11-20 15:41 ` Masahiro Yamada
0 siblings, 0 replies; 3+ messages in thread
From: Masahiro Yamada @ 2021-11-20 15:41 UTC (permalink / raw)
To: Björn Töpel
Cc: Josh Triplett, Linux Kbuild mailing list, Linux Kernel Mailing List
On Wed, Nov 17, 2021 at 7:46 PM Björn Töpel <bjorn@kernel.org> wrote:
>
> Josh Triplett wrote:
> > When converting a modular kernel to a monolithic kernel, once the kernel
> > works without loading any modules, this helps to quickly disable all the
> > modules before turning off module support entirely.
> >
> > Refactor conf_rewrite_mod_or_yes to a more general
> > conf_rewrite_tristates that accepts an old and new state.
> >
> > Signed-off-by: Josh Triplett <josh@joshtriplett.org>
>
> Hmm, I don't think this was picked up yet?
>
> FWIW,
>
> Tested-by: Björn Töpel <bjorn@kernel.org>
Applied to linux-kbuild.
Thanks.
--
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-11-20 15:42 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-17 17:43 [PATCH] kconfig: Add `make mod2noconfig` to disable module options Josh Triplett
2021-11-17 10:45 ` Björn Töpel
2021-11-20 15:41 ` Masahiro Yamada
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).