Commit 114a544c authored by Ignat Korchagin's avatar Ignat Korchagin Committed by Peng Zhang
Browse files

kexec: drop dependency on ARCH_SUPPORTS_KEXEC from CRASH_DUMP

stable inclusion
from stable-v6.6.8
commit 37b561d55936d0fcebd199d22180e595bb72b784
bugzilla: https://gitee.com/openeuler/kernel/issues/I99K53

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=37b561d55936d0fcebd199d22180e595bb72b784

--------------------------------

commit c41bd2514184d75db087fe4c1221237fb7922875 upstream.

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
91506f7e ("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.

[bhe@redhat.com: don't export some symbols when CONFIG_MMU=n]
  Link: https://lkml.kernel.org/r/ZW03ODUKGGhP1ZGU@MiWiFi-R3L-srv
[bhe@redhat.com: riscv, kexec: fix dependency of two items]
  Link: https://lkml.kernel.org/r/ZW04G/SKnhbE5mnX@MiWiFi-R3L-srv
Link: https://lkml.kernel.org/r/20231129220409.55006-1-ignat@cloudflare.com


Fixes: 91506f7e ("arm64/kexec: refactor for kernel/Kconfig.kexec")
Signed-off-by: default avatarIgnat Korchagin <ignat@cloudflare.com>
Signed-off-by: default avatarBaoquan He <bhe@redhat.com>
Acked-by: default avatarBaoquan He <bhe@redhat.com>
Cc: Alexander Gordeev <agordeev@linux.ibm.com>
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: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarZhangPeng <zhangpeng362@huawei.com>
parent 8a0d9430
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -670,7 +670,7 @@ config RISCV_BOOT_SPINWAIT
	  If unsure what to do here, say N.

config ARCH_SUPPORTS_KEXEC
	def_bool MMU
	def_bool y

config ARCH_SELECTS_KEXEC
	def_bool y
@@ -678,7 +678,7 @@ config ARCH_SELECTS_KEXEC
	select HOTPLUG_CPU if SMP

config ARCH_SUPPORTS_KEXEC_FILE
	def_bool 64BIT && MMU
	def_bool 64BIT

config ARCH_SELECTS_KEXEC_FILE
	def_bool y
+3 −1
Original line number Diff line number Diff line
@@ -5,17 +5,19 @@

void arch_crash_save_vmcoreinfo(void)
{
	VMCOREINFO_NUMBER(VA_BITS);
	VMCOREINFO_NUMBER(phys_ram_base);

	vmcoreinfo_append_str("NUMBER(PAGE_OFFSET)=0x%lx\n", PAGE_OFFSET);
	vmcoreinfo_append_str("NUMBER(VMALLOC_START)=0x%lx\n", VMALLOC_START);
	vmcoreinfo_append_str("NUMBER(VMALLOC_END)=0x%lx\n", VMALLOC_END);
#ifdef CONFIG_MMU
	VMCOREINFO_NUMBER(VA_BITS);
	vmcoreinfo_append_str("NUMBER(VMEMMAP_START)=0x%lx\n", VMEMMAP_START);
	vmcoreinfo_append_str("NUMBER(VMEMMAP_END)=0x%lx\n", VMEMMAP_END);
#ifdef CONFIG_64BIT
	vmcoreinfo_append_str("NUMBER(MODULES_VADDR)=0x%lx\n", MODULES_VADDR);
	vmcoreinfo_append_str("NUMBER(MODULES_END)=0x%lx\n", MODULES_END);
#endif
#endif
	vmcoreinfo_append_str("NUMBER(KERNEL_LINK_ADDR)=0x%lx\n", KERNEL_LINK_ADDR);
	vmcoreinfo_append_str("NUMBER(va_kernel_pa_offset)=0x%lx\n",
+0 −1
Original line number Diff line number Diff line
@@ -94,7 +94,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