kexec: drop dependency on ARCH_SUPPORTS_KEXEC from CRASH_DUMP

Message ID 20231129220409.55006-1-ignat@cloudflare.com
State New
Headers
Series kexec: drop dependency on ARCH_SUPPORTS_KEXEC from CRASH_DUMP |

Commit Message

Ignat Korchagin Nov. 29, 2023, 10:04 p.m. UTC
  In commit f8ff23429c62 ("kernel/Kconfig.kexec: drop select of KEXEC for
CRASH_DUMP") we tried to fix a config regression, where CONFIG_CRASH_DUMP
required CONFIG_KEXEC.

However, it was not enough at least for arm64 platforms. While further testing
the patch with our arm64 config I noticed that CONFIG_CRASH_DUMP is unavailable
in menuconfig. This is because CONFIG_CRASH_DUMP still depends on the new
CONFIG_ARCH_SUPPORTS_KEXEC introduced in commit 91506f7e5d21 ("arm64/kexec:
refactor for kernel/Kconfig.kexec") and on arm64 CONFIG_ARCH_SUPPORTS_KEXEC
requires CONFIG_PM_SLEEP_SMP=y, which in turn requires either CONFIG_SUSPEND=y
or CONFIG_HIBERNATION=y neither of which are set in our config.

Given that we already established that CONFIG_KEXEC (which is a switch for kexec
system call itself) is not required for CONFIG_CRASH_DUMP drop
CONFIG_ARCH_SUPPORTS_KEXEC dependency as well. The arm64 kernel builds just fine
with CONFIG_CRASH_DUMP=y and with both CONFIG_KEXEC=n and CONFIG_KEXEC_FILE=n
after f8ff23429c62 ("kernel/Kconfig.kexec: drop select of KEXEC for CRASH_DUMP")
and this patch are applied given that the necessary shared bits are included via
CONFIG_KEXEC_CORE dependency.

Fixes: 91506f7e5d21 ("arm64/kexec: refactor for kernel/Kconfig.kexec")
Cc: stable@vger.kernel.org # 6.6+: f8ff234: kernel/Kconfig.kexec: drop select of KEXEC for CRASH_DUMP
Cc: stable@vger.kernel.org # 6.6+
Signed-off-by: Ignat Korchagin <ignat@cloudflare.com>
---
 kernel/Kconfig.kexec | 1 -
 1 file changed, 1 deletion(-)
  

Comments

Andrew Morton Nov. 29, 2023, 10:23 p.m. UTC | #1
On Wed, 29 Nov 2023 22:04:09 +0000 Ignat Korchagin <ignat@cloudflare.com> wrote:

> Fixes: 91506f7e5d21 ("arm64/kexec: refactor for kernel/Kconfig.kexec")
> Cc: stable@vger.kernel.org # 6.6+: f8ff234: kernel/Kconfig.kexec: drop select of KEXEC for CRASH_DUMP
> Cc: stable@vger.kernel.org # 6.6+

I doubt if anyone knows what the two above lines mean.  What are your
recommendations for the merging of this patch?

> Signed-off-by: Ignat Korchagin <ignat@cloudflare.com>
  
Ignat Korchagin Nov. 29, 2023, 10:34 p.m. UTC | #2
On Wed, Nov 29, 2023 at 10:23 PM Andrew Morton
<akpm@linux-foundation.org> wrote:
>
> On Wed, 29 Nov 2023 22:04:09 +0000 Ignat Korchagin <ignat@cloudflare.com> wrote:
>
> > Fixes: 91506f7e5d21 ("arm64/kexec: refactor for kernel/Kconfig.kexec")
> > Cc: stable@vger.kernel.org # 6.6+: f8ff234: kernel/Kconfig.kexec: drop select of KEXEC for CRASH_DUMP
> > Cc: stable@vger.kernel.org # 6.6+
>
> I doubt if anyone knows what the two above lines mean.  What are your
> recommendations for the merging of this patch?

Hmm... I was just following
https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html#option-1
and basically wanted to make sure that this patch gets backported
together with commit f8ff234: kernel/Kconfig.kexec: drop select of
KEXEC for CRASH_DUMP (they should go together)

> > Signed-off-by: Ignat Korchagin <ignat@cloudflare.com>
>
  
Andrew Morton Nov. 29, 2023, 10:54 p.m. UTC | #3
On Wed, 29 Nov 2023 22:34:13 +0000 Ignat Korchagin <ignat@cloudflare.com> wrote:

> On Wed, Nov 29, 2023 at 10:23 PM Andrew Morton
> <akpm@linux-foundation.org> wrote:
> >
> > On Wed, 29 Nov 2023 22:04:09 +0000 Ignat Korchagin <ignat@cloudflare.com> wrote:
> >
> > > Fixes: 91506f7e5d21 ("arm64/kexec: refactor for kernel/Kconfig.kexec")
> > > Cc: stable@vger.kernel.org # 6.6+: f8ff234: kernel/Kconfig.kexec: drop select of KEXEC for CRASH_DUMP
> > > Cc: stable@vger.kernel.org # 6.6+
> >
> > I doubt if anyone knows what the two above lines mean.  What are your
> > recommendations for the merging of this patch?
> 
> Hmm... I was just following
> https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html#option-1
> and basically wanted to make sure that this patch gets backported
> together with commit f8ff234: kernel/Kconfig.kexec: drop select of
> KEXEC for CRASH_DUMP (they should go together)

I see, thanks.  I don't think I've ever received a patch which did this!
  
Baoquan He Nov. 30, 2023, 1:41 a.m. UTC | #4
On 11/29/23 at 10:04pm, Ignat Korchagin wrote:
> In commit f8ff23429c62 ("kernel/Kconfig.kexec: drop select of KEXEC for
> CRASH_DUMP") we tried to fix a config regression, where CONFIG_CRASH_DUMP
> required CONFIG_KEXEC.
> 
> However, it was not enough at least for arm64 platforms. While further testing
> the patch with our arm64 config I noticed that CONFIG_CRASH_DUMP is unavailable
> in menuconfig. This is because CONFIG_CRASH_DUMP still depends on the new
> CONFIG_ARCH_SUPPORTS_KEXEC introduced in commit 91506f7e5d21 ("arm64/kexec:
> refactor for kernel/Kconfig.kexec") and on arm64 CONFIG_ARCH_SUPPORTS_KEXEC
> requires CONFIG_PM_SLEEP_SMP=y, which in turn requires either CONFIG_SUSPEND=y
> or CONFIG_HIBERNATION=y neither of which are set in our config.
> 
> Given that we already established that CONFIG_KEXEC (which is a switch for kexec
> system call itself) is not required for CONFIG_CRASH_DUMP drop
> CONFIG_ARCH_SUPPORTS_KEXEC dependency as well. The arm64 kernel builds just fine
> with CONFIG_CRASH_DUMP=y and with both CONFIG_KEXEC=n and CONFIG_KEXEC_FILE=n
> after f8ff23429c62 ("kernel/Kconfig.kexec: drop select of KEXEC for CRASH_DUMP")
> and this patch are applied given that the necessary shared bits are included via
> CONFIG_KEXEC_CORE dependency.
> 
> Fixes: 91506f7e5d21 ("arm64/kexec: refactor for kernel/Kconfig.kexec")
> Cc: stable@vger.kernel.org # 6.6+: f8ff234: kernel/Kconfig.kexec: drop select of KEXEC for CRASH_DUMP
> Cc: stable@vger.kernel.org # 6.6+
> Signed-off-by: Ignat Korchagin <ignat@cloudflare.com>
> ---
>  kernel/Kconfig.kexec | 1 -
>  1 file changed, 1 deletion(-)

This is a good catch, thanks.

Acked-by: Baoquan He <bhe@redhat.com>

> 
> diff --git a/kernel/Kconfig.kexec b/kernel/Kconfig.kexec
> index fc38f1ae3a30..946dffa048b7 100644
> --- a/kernel/Kconfig.kexec
> +++ b/kernel/Kconfig.kexec
> @@ -96,7 +96,6 @@ config KEXEC_JUMP
>  config CRASH_DUMP
>  	bool "kernel crash dumps"
>  	depends on ARCH_SUPPORTS_CRASH_DUMP
> -	depends on ARCH_SUPPORTS_KEXEC
>  	select CRASH_CORE
>  	select KEXEC_CORE
>  	help
> -- 
> 2.39.2
>
  

Patch

diff --git a/kernel/Kconfig.kexec b/kernel/Kconfig.kexec
index fc38f1ae3a30..946dffa048b7 100644
--- a/kernel/Kconfig.kexec
+++ b/kernel/Kconfig.kexec
@@ -96,7 +96,6 @@  config KEXEC_JUMP
 config CRASH_DUMP
 	bool "kernel crash dumps"
 	depends on ARCH_SUPPORTS_CRASH_DUMP
-	depends on ARCH_SUPPORTS_KEXEC
 	select CRASH_CORE
 	select KEXEC_CORE
 	help