x86/kexec: refactor for kernel/Kconfig.kexec
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. Link: https://lkml.kernel.org/r/20230712161545.87870-3-eric.devolder@oracle.com Signed-off-by: Eric DeVolder <eric.devolder@oracle.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
89cde45591
commit
6af5138083
1 changed files with 17 additions and 71 deletions
|
@ -2040,88 +2040,34 @@ config EFI_RUNTIME_MAP
|
||||||
|
|
||||||
source "kernel/Kconfig.hz"
|
source "kernel/Kconfig.hz"
|
||||||
|
|
||||||
config KEXEC
|
config ARCH_SUPPORTS_KEXEC
|
||||||
bool "kexec system call"
|
def_bool y
|
||||||
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 X86_64 && CRYPTO && CRYPTO_SHA256
|
||||||
|
|
||||||
It is an ongoing process to be certain the hardware in a machine
|
config ARCH_SELECTS_KEXEC_FILE
|
||||||
is properly shutdown, so do not be surprised if this code does not
|
def_bool y
|
||||||
initially work for you. As of this writing the exact hardware
|
depends on KEXEC_FILE
|
||||||
interface is strongly in flux, so no good recommendation can be
|
|
||||||
made.
|
|
||||||
|
|
||||||
config KEXEC_FILE
|
|
||||||
bool "kexec file based system call"
|
|
||||||
select KEXEC_CORE
|
|
||||||
select HAVE_IMA_KEXEC if IMA
|
select HAVE_IMA_KEXEC if IMA
|
||||||
depends on X86_64
|
|
||||||
depends on CRYPTO=y
|
|
||||||
depends on CRYPTO_SHA256=y
|
|
||||||
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.
|
|
||||||
|
|
||||||
config ARCH_HAS_KEXEC_PURGATORY
|
config ARCH_HAS_KEXEC_PURGATORY
|
||||||
def_bool KEXEC_FILE
|
def_bool KEXEC_FILE
|
||||||
|
|
||||||
config KEXEC_SIG
|
config ARCH_SUPPORTS_KEXEC_SIG
|
||||||
bool "Verify kernel signature during kexec_file_load() syscall"
|
def_bool y
|
||||||
depends on KEXEC_FILE
|
|
||||||
help
|
|
||||||
|
|
||||||
This option makes the kexec_file_load() syscall check for a valid
|
config ARCH_SUPPORTS_KEXEC_SIG_FORCE
|
||||||
signature of the kernel image. The image can still be loaded without
|
def_bool y
|
||||||
a valid signature unless you also enable KEXEC_SIG_FORCE, though if
|
|
||||||
there's a signature that we can check, then it must be valid.
|
|
||||||
|
|
||||||
In addition to this option, you need to enable signature
|
config ARCH_SUPPORTS_KEXEC_BZIMAGE_VERIFY_SIG
|
||||||
verification for the corresponding kernel image type being
|
def_bool y
|
||||||
loaded in order for this to work.
|
|
||||||
|
|
||||||
config KEXEC_SIG_FORCE
|
config ARCH_SUPPORTS_KEXEC_JUMP
|
||||||
bool "Require a valid signature in kexec_file_load() syscall"
|
def_bool y
|
||||||
depends on KEXEC_SIG
|
|
||||||
help
|
|
||||||
This option makes kernel signature verification mandatory for
|
|
||||||
the kexec_file_load() syscall.
|
|
||||||
|
|
||||||
config KEXEC_BZIMAGE_VERIFY_SIG
|
config ARCH_SUPPORTS_CRASH_DUMP
|
||||||
bool "Enable bzImage signature verification support"
|
def_bool X86_64 || (X86_32 && HIGHMEM)
|
||||||
depends on KEXEC_SIG
|
|
||||||
depends on SIGNED_PE_FILE_VERIFICATION
|
|
||||||
select SYSTEM_TRUSTED_KEYRING
|
|
||||||
help
|
|
||||||
Enable bzImage signature verification support.
|
|
||||||
|
|
||||||
config CRASH_DUMP
|
|
||||||
bool "kernel crash dumps"
|
|
||||||
depends on X86_64 || (X86_32 && HIGHMEM)
|
|
||||||
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. The crash dump kernel must be compiled
|
|
||||||
to a memory address not used by the main kernel or BIOS using
|
|
||||||
PHYSICAL_START, or it must be built as a relocatable image
|
|
||||||
(CONFIG_RELOCATABLE=y).
|
|
||||||
For more details see Documentation/admin-guide/kdump/kdump.rst
|
|
||||||
|
|
||||||
config KEXEC_JUMP
|
|
||||||
bool "kexec jump"
|
|
||||||
depends on KEXEC && HIBERNATION
|
|
||||||
help
|
|
||||||
Jump between original kernel and kexeced kernel and invoke
|
|
||||||
code in physical address mode via KEXEC
|
|
||||||
|
|
||||||
config PHYSICAL_START
|
config PHYSICAL_START
|
||||||
hex "Physical address where the kernel is loaded" if (EXPERT || CRASH_DUMP)
|
hex "Physical address where the kernel is loaded" if (EXPERT || CRASH_DUMP)
|
||||||
|
|
Loading…
Add table
Reference in a new issue