Subject: Re: linux-next: build warning after merge of the mm tree

From: Johannes Weiner <[email-masked]>
Date: Thu, 12 May 2022 08:23:18 -0400

On Thu, May 12, 2022 at 07:46:07PM +1000, Stephen Rothwell wrote:
> Hi all,
> 
> After merging the mm tree, today's linux-next build (powerpc allnoconfig,
> powerpc ppc44x_defconfig and arm64 defconfig) produced this warning:
> 
> WARNING: unmet direct dependencies detected for ARCH_ENABLE_MEMORY_HOTREMOVE
>   Depends on [n]: MEMORY_HOTPLUG [=n]
>   Selected by [y]:
>   - PPC [=y]
> Building: powerpc64 allnoconfig
> 
> WARNING: unmet direct dependencies detected for ARCH_ENABLE_MEMORY_HOTREMOVE
>   Depends on [n]: MEMORY_HOTPLUG [=n]
>   Selected by [y]:
>   - PPC [=y]
> 
> WARNING: unmet direct dependencies detected for ARCH_ENABLE_MEMORY_HOTREMOVE
>   Depends on [n]: MEMORY_HOTPLUG [=n]
>   Selected by [y]:
>   - ARM64 [=y]
> 
> WARNING: unmet direct dependencies detected for ARCH_ENABLE_MEMORY_HOTREMOVE
>   Depends on [n]: MEMORY_HOTPLUG [=n]
>   Selected by [y]:
>   - ARM64 [=y]
> 
> Probably introduced by commit
> 
>   52bc69c65c03 ("mm: Kconfig: group swap, slab, hotplug and thp options into submenus")

Sorry about the noise, I must be blind. And x86 does
  arch/x86/Kconfig:       select ARCH_ENABLE_MEMORY_HOTREMOVE if MEMORY_HOTPLUG
that's why it didn't trigger for me.

This should be the last one, I triple checked the commit.

---

>From 588d2c5ba815df3b8028e198b7543a5450c24b33 Mon Sep 17 00:00:00 2001
From: Johannes Weiner <[email-masked]>
Date: Thu, 12 May 2022 08:11:17 -0400
Subject: [PATCH] mm: Kconfig: group swap, slab, hotplug and thp options into
 submenus fix fix

WARNING: unmet direct dependencies detected for ARCH_ENABLE_MEMORY_HOTREMOVE
  Depends on [n]: MEMORY_HOTPLUG [=n]
  Selected by [y]:
  - PPC [=y]

This is a symbol for the architecture to declare a feature. It mustn't
be conditional on user selection. Move it out of 'if MEMORY_HOTPLUG'.

Reported-by: Stephen Rothwell <[email-masked]>
Signed-off-by: Johannes Weiner <[email-masked]>
---
 mm/Kconfig | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/mm/Kconfig b/mm/Kconfig
index c2f4a547ab00..f63d8dc36511 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -436,6 +436,9 @@ config HAVE_BOOTMEM_INFO_NODE
 config ARCH_ENABLE_MEMORY_HOTPLUG
 	bool
 
+config ARCH_ENABLE_MEMORY_HOTREMOVE
+	bool
+
 # eventually, we can have this option just 'select SPARSEMEM'
 menuconfig MEMORY_HOTPLUG
 	bool "Memory hotplug"
@@ -462,9 +465,6 @@ config MEMORY_HOTPLUG_DEFAULT_ONLINE
 	  Say N here if you want the default policy to keep all hot-plugged
 	  memory blocks in 'offline' state.
 
-config ARCH_ENABLE_MEMORY_HOTREMOVE
-	bool
-
 config MEMORY_HOTREMOVE
 	bool "Allow for memory hot remove"
 	select HAVE_BOOTMEM_INFO_NODE if (X86_64 || PPC64)
-- 
2.35.3