> -#if (defined(CONFIG_MEMORY_ISOLATION) && defined(CONFIG_COMPACTION)) || defined(CONFIG_CMA) > +#ifdef CONFIG_COMPACTION_CORE > static __init int gigantic_pages_init(void) > { > /* With compaction or CMA we can allocate gigantic pages at runtime */ > diff --git a/fs/Kconfig b/fs/Kconfig > index ac474a61be37..8fecd3ea5563 100644 > --- a/fs/Kconfig > +++ b/fs/Kconfig > @@ -207,8 +207,9 @@ config HUGETLB_PAGE > config MEMFD_CREATE > def_bool TMPFS || HUGETLBFS > > -config ARCH_HAS_GIGANTIC_PAGE > +config COMPACTION_CORE > bool > + default y if (MEMORY_ISOLATION && MIGRATION) || CMA This takes a hard dependency (#if) and turns it into a Kconfig *default* that can be overridden. That seems like trouble. Shouldn't it be: config COMPACTION_CORE def_bool y depends on (MEMORY_ISOLATION && MIGRATION) || CMA ?