The kexec and crash kernel options are provided in the common
kernel/Kconfig.kexec. Utilize the common options and provide
the ARCH_SUPPORTS_ and ARCH_SELECTS_ entries to recreate the
equivalent set of KEXEC and CRASH options.
Signed-off-by: Eric DeVolder <eric.devolder@oracle.com>
---
arch/riscv/Kconfig | 48 ++++++++++++++--------------------------------
1 file changed, 14 insertions(+), 34 deletions(-)
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index 5966ad97c30c..c484abd9bbfd 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -585,48 +585,28 @@ config RISCV_BOOT_SPINWAIT
If unsure what to do here, say N.
-config KEXEC
- bool "Kexec system call"
- depends on MMU
+config ARCH_SUPPORTS_KEXEC
+ def_bool MMU
+
+config ARCH_SELECTS_KEXEC
+ def_bool y
+ depends on KEXEC
select HOTPLUG_CPU if SMP
- select KEXEC_CORE
- help
- kexec is a system call that implements the ability to shutdown your
- current kernel, and to start another kernel. It is like a reboot
- but it is independent of the system firmware. And like a reboot
- you can start any kernel with it, not just Linux.
- The name comes from the similarity to the exec system call.
+config ARCH_SUPPORTS_KEXEC_FILE
+ def_bool 64BIT && MMU && CRYPTO=y && CRYPTO_SHA256=y
-config KEXEC_FILE
- bool "kexec file based systmem call"
- depends on 64BIT && MMU
- select HAVE_IMA_KEXEC if IMA
- select KEXEC_CORE
+config ARCH_SELECTS_KEXEC_FILE
+ def_bool y
+ depends on KEXEC_FILE
select KEXEC_ELF
- help
- This is new version of kexec system call. This system call is
- file based and takes file descriptors as system call argument
- for kernel and initramfs as opposed to list of segments as
- accepted by previous system call.
-
- If you don't know what to do here, say Y.
+ select HAVE_IMA_KEXEC if IMA
config ARCH_HAS_KEXEC_PURGATORY
def_bool KEXEC_FILE
- depends on CRYPTO=y
- depends on CRYPTO_SHA256=y
-config CRASH_DUMP
- bool "Build kdump crash kernel"
- help
- Generate crash dump after being started by kexec. This should
- be normally only set in special crash dump kernels which are
- loaded in the main kernel with kexec-tools into a specially
- reserved region and then later executed after a crash by
- kdump/kexec.
-
- For more details see Documentation/admin-guide/kdump/kdump.rst
+config ARCH_SUPPORTS_CRASH_DUMP
+ def_bool y
config COMPAT
bool "Kernel support for 32-bit U-mode"
--
2.31.1
Hey Eric, On Mon, Jun 26, 2023 at 12:13:30PM -0400, Eric DeVolder wrote: > The kexec and crash kernel options are provided in the common > kernel/Kconfig.kexec. Utilize the common options and provide > the ARCH_SUPPORTS_ and ARCH_SELECTS_ entries to recreate the > equivalent set of KEXEC and CRASH options. I find this diff a little hard to follow (since the other half off the change is in another patch), so it may be me missing something, but are you sure? > > Signed-off-by: Eric DeVolder <eric.devolder@oracle.com> > --- > arch/riscv/Kconfig | 48 ++++++++++++++-------------------------------- > 1 file changed, 14 insertions(+), 34 deletions(-) > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > index 5966ad97c30c..c484abd9bbfd 100644 > --- a/arch/riscv/Kconfig > +++ b/arch/riscv/Kconfig > @@ -585,48 +585,28 @@ config RISCV_BOOT_SPINWAIT > > If unsure what to do here, say N. > > -config KEXEC > - bool "Kexec system call" > - depends on MMU > +config ARCH_SUPPORTS_KEXEC > + def_bool MMU > + > +config ARCH_SELECTS_KEXEC > + def_bool y > + depends on KEXEC > select HOTPLUG_CPU if SMP > - select KEXEC_CORE > - help > - kexec is a system call that implements the ability to shutdown your > - current kernel, and to start another kernel. It is like a reboot > - but it is independent of the system firmware. And like a reboot > - you can start any kernel with it, not just Linux. > > - The name comes from the similarity to the exec system call. > +config ARCH_SUPPORTS_KEXEC_FILE > + def_bool 64BIT && MMU && CRYPTO=y && CRYPTO_SHA256=y This looks like a change to me. Previously, only KEXEC_PURGATORY required these crypto options to be like so, but now KEXEC_FILE needs them too. What am I missing? Cheers, Conor. > > -config KEXEC_FILE > - bool "kexec file based systmem call" > - depends on 64BIT && MMU > - select HAVE_IMA_KEXEC if IMA > - select KEXEC_CORE > +config ARCH_SELECTS_KEXEC_FILE > + def_bool y > + depends on KEXEC_FILE > select KEXEC_ELF > - help > - This is new version of kexec system call. This system call is > - file based and takes file descriptors as system call argument > - for kernel and initramfs as opposed to list of segments as > - accepted by previous system call. > - > - If you don't know what to do here, say Y. > + select HAVE_IMA_KEXEC if IMA > > config ARCH_HAS_KEXEC_PURGATORY > def_bool KEXEC_FILE > - depends on CRYPTO=y > - depends on CRYPTO_SHA256=y > > -config CRASH_DUMP > - bool "Build kdump crash kernel" > - help > - Generate crash dump after being started by kexec. This should > - be normally only set in special crash dump kernels which are > - loaded in the main kernel with kexec-tools into a specially > - reserved region and then later executed after a crash by > - kdump/kexec. > - > - For more details see Documentation/admin-guide/kdump/kdump.rst > +config ARCH_SUPPORTS_CRASH_DUMP > + def_bool y > > config COMPAT > bool "Kernel support for 32-bit U-mode" > -- > 2.31.1 >
On 6/28/23 03:20, Conor Dooley wrote: > Hey Eric, > > On Mon, Jun 26, 2023 at 12:13:30PM -0400, Eric DeVolder wrote: >> The kexec and crash kernel options are provided in the common >> kernel/Kconfig.kexec. Utilize the common options and provide >> the ARCH_SUPPORTS_ and ARCH_SELECTS_ entries to recreate the > >> equivalent set of KEXEC and CRASH options. > > I find this diff a little hard to follow (since the other half off the > change is in another patch), so it may be me missing something, but are > you sure? > >> >> Signed-off-by: Eric DeVolder <eric.devolder@oracle.com> >> --- >> arch/riscv/Kconfig | 48 ++++++++++++++-------------------------------- >> 1 file changed, 14 insertions(+), 34 deletions(-) >> >> diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig >> index 5966ad97c30c..c484abd9bbfd 100644 >> --- a/arch/riscv/Kconfig >> +++ b/arch/riscv/Kconfig >> @@ -585,48 +585,28 @@ config RISCV_BOOT_SPINWAIT >> >> If unsure what to do here, say N. >> >> -config KEXEC >> - bool "Kexec system call" >> - depends on MMU >> +config ARCH_SUPPORTS_KEXEC >> + def_bool MMU >> + >> +config ARCH_SELECTS_KEXEC >> + def_bool y >> + depends on KEXEC >> select HOTPLUG_CPU if SMP >> - select KEXEC_CORE >> - help >> - kexec is a system call that implements the ability to shutdown your >> - current kernel, and to start another kernel. It is like a reboot >> - but it is independent of the system firmware. And like a reboot >> - you can start any kernel with it, not just Linux. >> >> - The name comes from the similarity to the exec system call. >> +config ARCH_SUPPORTS_KEXEC_FILE >> + def_bool 64BIT && MMU && CRYPTO=y && CRYPTO_SHA256=y > > This looks like a change to me. Previously, only KEXEC_PURGATORY > required these crypto options to be like so, but now KEXEC_FILE needs > them too. > > What am I missing? Conor, Thanks for looking at this! Indeed I erroneously applied the CRYPTO=y && CRYPTO_SHA256=y to KEXEC_FILE rather than PURGATORY. I will correct for v4! Thanks! eric > > Cheers, > Conor. > >> >> -config KEXEC_FILE >> - bool "kexec file based systmem call" >> - depends on 64BIT && MMU >> - select HAVE_IMA_KEXEC if IMA >> - select KEXEC_CORE >> +config ARCH_SELECTS_KEXEC_FILE >> + def_bool y >> + depends on KEXEC_FILE >> select KEXEC_ELF >> - help >> - This is new version of kexec system call. This system call is >> - file based and takes file descriptors as system call argument >> - for kernel and initramfs as opposed to list of segments as >> - accepted by previous system call. >> - >> - If you don't know what to do here, say Y. >> + select HAVE_IMA_KEXEC if IMA >> >> config ARCH_HAS_KEXEC_PURGATORY >> def_bool KEXEC_FILE >> - depends on CRYPTO=y >> - depends on CRYPTO_SHA256=y >> >> -config CRASH_DUMP >> - bool "Build kdump crash kernel" >> - help >> - Generate crash dump after being started by kexec. This should >> - be normally only set in special crash dump kernels which are >> - loaded in the main kernel with kexec-tools into a specially >> - reserved region and then later executed after a crash by >> - kdump/kexec. >> - >> - For more details see Documentation/admin-guide/kdump/kdump.rst >> +config ARCH_SUPPORTS_CRASH_DUMP >> + def_bool y >> >> config COMPAT >> bool "Kernel support for 32-bit U-mode" >> -- >> 2.31.1 >>
© 2016 - 2026 Red Hat, Inc.