Message ID | 20230626161332.183214-13-eric.devolder@oracle.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | refactor Kconfig to consolidate KEXEC and CRASH options | expand |
On Mon, Jun 26, 2023 at 12:13:31PM -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. > > NOTE: The original Kconfig has a KEXEC_SIG which depends on > MODULE_SIG_FORMAT. However, attempts to keep the MODULE_SIG_FORMAT > dependency (using the strategy outlined in this series, and other > techniques) results in 'error: recursive dependency detected' > on CRYPTO. > > Per Alexander Gordeev <agordeev@linux.ibm.com>: "the MODULE_SIG_FORMAT > dependency was introduced with [git commit below] and in fact was not > necessary, since s390 did/does not use mod_check_sig() anyway. > > commit c8424e776b09 ("MODSIGN: Export module signature definitions") > > MODULE_SIG_FORMAT is needed to select SYSTEM_DATA_VERIFICATION. But > SYSTEM_DATA_VERIFICATION is also selected by FS_VERITY*, so dropping > MODULE_SIG_FORMAT does not hurt." > > Therefore, the solution is to drop the MODULE_SIG_FORMAT dependency > from KEXEC_SIG. Still results in equivalent .config files for s390. > > Signed-off-by: Eric DeVolder <eric.devolder@oracle.com> > --- > arch/s390/Kconfig | 65 ++++++++++++++--------------------------------- > 1 file changed, 19 insertions(+), 46 deletions(-) > > diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig > index 6dab9c1be508..58dc124433ca 100644 > --- a/arch/s390/Kconfig > +++ b/arch/s390/Kconfig > @@ -243,6 +243,25 @@ config PGTABLE_LEVELS > > source "kernel/livepatch/Kconfig" > > +config ARCH_DEFAULT_KEXEC > + def_bool y > + > +config ARCH_SUPPORTS_KEXEC > + def_bool y > + > +config ARCH_SUPPORTS_KEXEC_FILE > + def_bool CRYPTO && CRYPTO_SHA256 && CRYPTO_SHA256_S390 > + > +config ARCH_HAS_KEXEC_PURGATORY > + def_bool KEXEC_FILE > + > +config ARCH_SUPPORTS_CRASH_DUMP > + def_bool y > + help > + Refer to <file:Documentation/s390/zfcpdump.rst> for more details on this. > + This option also enables s390 zfcpdump. > + See also <file:Documentation/s390/zfcpdump.rst> > + > menu "Processor type and features" > > config HAVE_MARCH_Z10_FEATURES > @@ -481,36 +500,6 @@ config SCHED_TOPOLOGY > > source "kernel/Kconfig.hz" > > -config KEXEC > - def_bool y > - select KEXEC_CORE > - > -config KEXEC_FILE > - bool "kexec file based system call" > - select KEXEC_CORE > - depends on CRYPTO > - depends on CRYPTO_SHA256 > - depends on CRYPTO_SHA256_S390 > - help > - Enable the kexec file based system call. In contrast to the normal > - kexec system call this system call takes file descriptors for the > - kernel and initramfs as arguments. > - > -config ARCH_HAS_KEXEC_PURGATORY > - def_bool y > - depends on KEXEC_FILE > - > -config KEXEC_SIG > - bool "Verify kernel signature during kexec_file_load() syscall" > - depends on KEXEC_FILE && MODULE_SIG_FORMAT > - help > - This option makes kernel signature verification mandatory for > - the kexec_file_load() syscall. > - > - In addition to that option, you need to enable signature > - verification for the corresponding kernel image type being > - loaded in order for this to work. > - > config KERNEL_NOBP > def_bool n > prompt "Enable modified branch prediction for the kernel by default" > @@ -732,22 +721,6 @@ config VFIO_AP > > endmenu > > -menu "Dump support" > - > -config CRASH_DUMP > - bool "kernel crash dumps" > - select KEXEC > - help > - Generate crash dump after being started by kexec. > - Crash dump kernels are loaded in the main kernel with kexec-tools > - into a specially reserved region and then later executed after > - a crash by kdump/kexec. > - Refer to <file:Documentation/s390/zfcpdump.rst> for more details on this. > - This option also enables s390 zfcpdump. > - See also <file:Documentation/s390/zfcpdump.rst> > - > -endmenu > - > config CCW > def_bool y Acked-by: Alexander Gordeev <agordeev@linux.ibm.com>
On 6/30/23 08:07, Alexander Gordeev wrote: > On Mon, Jun 26, 2023 at 12:13:31PM -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. >> >> NOTE: The original Kconfig has a KEXEC_SIG which depends on >> MODULE_SIG_FORMAT. However, attempts to keep the MODULE_SIG_FORMAT >> dependency (using the strategy outlined in this series, and other >> techniques) results in 'error: recursive dependency detected' >> on CRYPTO. >> >> Per Alexander Gordeev <agordeev@linux.ibm.com>: "the MODULE_SIG_FORMAT >> dependency was introduced with [git commit below] and in fact was not >> necessary, since s390 did/does not use mod_check_sig() anyway. >> >> commit c8424e776b09 ("MODSIGN: Export module signature definitions") >> >> MODULE_SIG_FORMAT is needed to select SYSTEM_DATA_VERIFICATION. But >> SYSTEM_DATA_VERIFICATION is also selected by FS_VERITY*, so dropping >> MODULE_SIG_FORMAT does not hurt." >> >> Therefore, the solution is to drop the MODULE_SIG_FORMAT dependency >> from KEXEC_SIG. Still results in equivalent .config files for s390. >> >> Signed-off-by: Eric DeVolder <eric.devolder@oracle.com> >> --- >> arch/s390/Kconfig | 65 ++++++++++++++--------------------------------- >> 1 file changed, 19 insertions(+), 46 deletions(-) >> >> diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig >> index 6dab9c1be508..58dc124433ca 100644 >> --- a/arch/s390/Kconfig >> +++ b/arch/s390/Kconfig >> @@ -243,6 +243,25 @@ config PGTABLE_LEVELS >> >> source "kernel/livepatch/Kconfig" >> >> +config ARCH_DEFAULT_KEXEC >> + def_bool y >> + >> +config ARCH_SUPPORTS_KEXEC >> + def_bool y >> + >> +config ARCH_SUPPORTS_KEXEC_FILE >> + def_bool CRYPTO && CRYPTO_SHA256 && CRYPTO_SHA256_S390 >> + >> +config ARCH_HAS_KEXEC_PURGATORY >> + def_bool KEXEC_FILE >> + >> +config ARCH_SUPPORTS_CRASH_DUMP >> + def_bool y >> + help >> + Refer to <file:Documentation/s390/zfcpdump.rst> for more details on this. >> + This option also enables s390 zfcpdump. >> + See also <file:Documentation/s390/zfcpdump.rst> >> + >> menu "Processor type and features" >> >> config HAVE_MARCH_Z10_FEATURES >> @@ -481,36 +500,6 @@ config SCHED_TOPOLOGY >> >> source "kernel/Kconfig.hz" >> >> -config KEXEC >> - def_bool y >> - select KEXEC_CORE >> - >> -config KEXEC_FILE >> - bool "kexec file based system call" >> - select KEXEC_CORE >> - depends on CRYPTO >> - depends on CRYPTO_SHA256 >> - depends on CRYPTO_SHA256_S390 >> - help >> - Enable the kexec file based system call. In contrast to the normal >> - kexec system call this system call takes file descriptors for the >> - kernel and initramfs as arguments. >> - >> -config ARCH_HAS_KEXEC_PURGATORY >> - def_bool y >> - depends on KEXEC_FILE >> - >> -config KEXEC_SIG >> - bool "Verify kernel signature during kexec_file_load() syscall" >> - depends on KEXEC_FILE && MODULE_SIG_FORMAT >> - help >> - This option makes kernel signature verification mandatory for >> - the kexec_file_load() syscall. >> - >> - In addition to that option, you need to enable signature >> - verification for the corresponding kernel image type being >> - loaded in order for this to work. >> - >> config KERNEL_NOBP >> def_bool n >> prompt "Enable modified branch prediction for the kernel by default" >> @@ -732,22 +721,6 @@ config VFIO_AP >> >> endmenu >> >> -menu "Dump support" >> - >> -config CRASH_DUMP >> - bool "kernel crash dumps" >> - select KEXEC >> - help >> - Generate crash dump after being started by kexec. >> - Crash dump kernels are loaded in the main kernel with kexec-tools >> - into a specially reserved region and then later executed after >> - a crash by kdump/kexec. >> - Refer to <file:Documentation/s390/zfcpdump.rst> for more details on this. >> - This option also enables s390 zfcpdump. >> - See also <file:Documentation/s390/zfcpdump.rst> >> - >> -endmenu >> - >> config CCW >> def_bool y > > Acked-by: Alexander Gordeev <agordeev@linux.ibm.com> Thank you Alexander! eric
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index 6dab9c1be508..58dc124433ca 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig @@ -243,6 +243,25 @@ config PGTABLE_LEVELS source "kernel/livepatch/Kconfig" +config ARCH_DEFAULT_KEXEC + def_bool y + +config ARCH_SUPPORTS_KEXEC + def_bool y + +config ARCH_SUPPORTS_KEXEC_FILE + def_bool CRYPTO && CRYPTO_SHA256 && CRYPTO_SHA256_S390 + +config ARCH_HAS_KEXEC_PURGATORY + def_bool KEXEC_FILE + +config ARCH_SUPPORTS_CRASH_DUMP + def_bool y + help + Refer to <file:Documentation/s390/zfcpdump.rst> for more details on this. + This option also enables s390 zfcpdump. + See also <file:Documentation/s390/zfcpdump.rst> + menu "Processor type and features" config HAVE_MARCH_Z10_FEATURES @@ -481,36 +500,6 @@ config SCHED_TOPOLOGY source "kernel/Kconfig.hz" -config KEXEC - def_bool y - select KEXEC_CORE - -config KEXEC_FILE - bool "kexec file based system call" - select KEXEC_CORE - depends on CRYPTO - depends on CRYPTO_SHA256 - depends on CRYPTO_SHA256_S390 - help - Enable the kexec file based system call. In contrast to the normal - kexec system call this system call takes file descriptors for the - kernel and initramfs as arguments. - -config ARCH_HAS_KEXEC_PURGATORY - def_bool y - depends on KEXEC_FILE - -config KEXEC_SIG - bool "Verify kernel signature during kexec_file_load() syscall" - depends on KEXEC_FILE && MODULE_SIG_FORMAT - help - This option makes kernel signature verification mandatory for - the kexec_file_load() syscall. - - In addition to that option, you need to enable signature - verification for the corresponding kernel image type being - loaded in order for this to work. - config KERNEL_NOBP def_bool n prompt "Enable modified branch prediction for the kernel by default" @@ -732,22 +721,6 @@ config VFIO_AP endmenu -menu "Dump support" - -config CRASH_DUMP - bool "kernel crash dumps" - select KEXEC - help - Generate crash dump after being started by kexec. - Crash dump kernels are loaded in the main kernel with kexec-tools - into a specially reserved region and then later executed after - a crash by kdump/kexec. - Refer to <file:Documentation/s390/zfcpdump.rst> for more details on this. - This option also enables s390 zfcpdump. - See also <file:Documentation/s390/zfcpdump.rst> - -endmenu - config CCW def_bool y
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. NOTE: The original Kconfig has a KEXEC_SIG which depends on MODULE_SIG_FORMAT. However, attempts to keep the MODULE_SIG_FORMAT dependency (using the strategy outlined in this series, and other techniques) results in 'error: recursive dependency detected' on CRYPTO. Per Alexander Gordeev <agordeev@linux.ibm.com>: "the MODULE_SIG_FORMAT dependency was introduced with [git commit below] and in fact was not necessary, since s390 did/does not use mod_check_sig() anyway. commit c8424e776b09 ("MODSIGN: Export module signature definitions") MODULE_SIG_FORMAT is needed to select SYSTEM_DATA_VERIFICATION. But SYSTEM_DATA_VERIFICATION is also selected by FS_VERITY*, so dropping MODULE_SIG_FORMAT does not hurt." Therefore, the solution is to drop the MODULE_SIG_FORMAT dependency from KEXEC_SIG. Still results in equivalent .config files for s390. Signed-off-by: Eric DeVolder <eric.devolder@oracle.com> --- arch/s390/Kconfig | 65 ++++++++++++++--------------------------------- 1 file changed, 19 insertions(+), 46 deletions(-)