diff mbox series

[v1,05/21] arm64/kexec: refactor for kernel/Kconfig.kexec

Message ID 20230612172805.681179-6-eric.devolder@oracle.com (mailing list archive)
State Handled Elsewhere
Headers show
Series refactor Kconfig to consolidate KEXEC and CRASH options | expand

Commit Message

Eric DeVolder June 12, 2023, 5:27 p.m. UTC
The kexec and crash kernel options are provided in the common
kernel/Kconfig.kexec. Utilize the common options and provide
the ARCH_HAS_ and ARCH_SUPPORTS_ entries to recreate the
equivalent set of KEXEC and CRASH options.

Signed-off-by: Eric DeVolder <eric.devolder@oracle.com>
---
 arch/arm64/Kconfig | 61 ++++++++--------------------------------------
 1 file changed, 10 insertions(+), 51 deletions(-)

Comments

Leizhen (ThunderTown) June 14, 2023, 1:22 a.m. UTC | #1
On 2023/6/13 1:27, 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_HAS_ and ARCH_SUPPORTS_ entries to recreate the
> equivalent set of KEXEC and CRASH options.
> 
> Signed-off-by: Eric DeVolder <eric.devolder@oracle.com>
> ---
>  arch/arm64/Kconfig | 61 ++++++++--------------------------------------
>  1 file changed, 10 insertions(+), 51 deletions(-)
> 
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index 343e1e1cae10..33552476a877 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -1433,60 +1433,19 @@ config PARAVIRT_TIME_ACCOUNTING
>  
>  	  If in doubt, say N here.
>  
> -config KEXEC
> -	depends on PM_SLEEP_SMP
> -	select KEXEC_CORE
> -	bool "kexec system call"
> -	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.
> -
> -config KEXEC_FILE
> -	bool "kexec file based system call"
> -	select KEXEC_CORE
> -	select HAVE_IMA_KEXEC if IMA
> -	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 KEXEC_SIG
> -	bool "Verify kernel signature during kexec_file_load() syscall"
> -	depends on KEXEC_FILE
> -	help
> -	  Select this option to verify a signature with loaded kernel
> -	  image. If configured, any attempt of loading a image without
> -	  valid signature will fail.
> -
> -	  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 ARCH_HAS_KEXEC
> +	def_bool PM_SLEEP_SMP
>  
> -config KEXEC_IMAGE_VERIFY_SIG
> -	bool "Enable Image signature verification support"
> -	default y
> -	depends on KEXEC_SIG
> -	depends on EFI && SIGNED_PE_FILE_VERIFICATION
> -	help
> -	  Enable Image signature verification support.

I don't see an alternative to this option. It's used in
arch/arm64/kernel/kexec_image.c:135

> -
> -comment "Support for PE file signature verification disabled"
> -	depends on KEXEC_SIG
> -	depends on !EFI || !SIGNED_PE_FILE_VERIFICATION
> +config ARCH_HAS_KEXEC_FILE
> +	def_bool 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.
> +config ARCH_SUPPORTS_KEXEC_FILE
> +	def_bool y
> +	depends on KEXEC_FILE
> +	select HAVE_IMA_KEXEC if IMA
>  
> -	  For more details see Documentation/admin-guide/kdump/kdump.rst
> +config ARCH_HAS_CRASH_DUMP
> +	def_bool y
>  
>  config TRANS_TABLE
>  	def_bool y
>
Eric DeVolder June 14, 2023, 11:57 a.m. UTC | #2
On 6/13/23 20:22, Leizhen (ThunderTown) wrote:
> 
> 
> On 2023/6/13 1:27, 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_HAS_ and ARCH_SUPPORTS_ entries to recreate the
>> equivalent set of KEXEC and CRASH options.
>>
>> Signed-off-by: Eric DeVolder <eric.devolder@oracle.com>
>> ---
>>   arch/arm64/Kconfig | 61 ++++++++--------------------------------------
>>   1 file changed, 10 insertions(+), 51 deletions(-)
>>
>> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
>> index 343e1e1cae10..33552476a877 100644
>> --- a/arch/arm64/Kconfig
>> +++ b/arch/arm64/Kconfig
>> @@ -1433,60 +1433,19 @@ config PARAVIRT_TIME_ACCOUNTING
>>   
>>   	  If in doubt, say N here.
>>   
>> -config KEXEC
>> -	depends on PM_SLEEP_SMP
>> -	select KEXEC_CORE
>> -	bool "kexec system call"
>> -	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.
>> -
>> -config KEXEC_FILE
>> -	bool "kexec file based system call"
>> -	select KEXEC_CORE
>> -	select HAVE_IMA_KEXEC if IMA
>> -	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 KEXEC_SIG
>> -	bool "Verify kernel signature during kexec_file_load() syscall"
>> -	depends on KEXEC_FILE
>> -	help
>> -	  Select this option to verify a signature with loaded kernel
>> -	  image. If configured, any attempt of loading a image without
>> -	  valid signature will fail.
>> -
>> -	  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 ARCH_HAS_KEXEC
>> +	def_bool PM_SLEEP_SMP
>>   
>> -config KEXEC_IMAGE_VERIFY_SIG
>> -	bool "Enable Image signature verification support"
>> -	default y
>> -	depends on KEXEC_SIG
>> -	depends on EFI && SIGNED_PE_FILE_VERIFICATION
>> -	help
>> -	  Enable Image signature verification support.
> 
> I don't see an alternative to this option. It's used in
> arch/arm64/kernel/kexec_image.c:135
> 
Good catch! I will move this into the common options.
Thank you Zhen!
eric

>> -
>> -comment "Support for PE file signature verification disabled"
>> -	depends on KEXEC_SIG
>> -	depends on !EFI || !SIGNED_PE_FILE_VERIFICATION
>> +config ARCH_HAS_KEXEC_FILE
>> +	def_bool 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.
>> +config ARCH_SUPPORTS_KEXEC_FILE
>> +	def_bool y
>> +	depends on KEXEC_FILE
>> +	select HAVE_IMA_KEXEC if IMA
>>   
>> -	  For more details see Documentation/admin-guide/kdump/kdump.rst
>> +config ARCH_HAS_CRASH_DUMP
>> +	def_bool y
>>   
>>   config TRANS_TABLE
>>   	def_bool y
>>
>
diff mbox series

Patch

diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 343e1e1cae10..33552476a877 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -1433,60 +1433,19 @@  config PARAVIRT_TIME_ACCOUNTING
 
 	  If in doubt, say N here.
 
-config KEXEC
-	depends on PM_SLEEP_SMP
-	select KEXEC_CORE
-	bool "kexec system call"
-	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.
-
-config KEXEC_FILE
-	bool "kexec file based system call"
-	select KEXEC_CORE
-	select HAVE_IMA_KEXEC if IMA
-	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 KEXEC_SIG
-	bool "Verify kernel signature during kexec_file_load() syscall"
-	depends on KEXEC_FILE
-	help
-	  Select this option to verify a signature with loaded kernel
-	  image. If configured, any attempt of loading a image without
-	  valid signature will fail.
-
-	  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 ARCH_HAS_KEXEC
+	def_bool PM_SLEEP_SMP
 
-config KEXEC_IMAGE_VERIFY_SIG
-	bool "Enable Image signature verification support"
-	default y
-	depends on KEXEC_SIG
-	depends on EFI && SIGNED_PE_FILE_VERIFICATION
-	help
-	  Enable Image signature verification support.
-
-comment "Support for PE file signature verification disabled"
-	depends on KEXEC_SIG
-	depends on !EFI || !SIGNED_PE_FILE_VERIFICATION
+config ARCH_HAS_KEXEC_FILE
+	def_bool 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.
+config ARCH_SUPPORTS_KEXEC_FILE
+	def_bool y
+	depends on KEXEC_FILE
+	select HAVE_IMA_KEXEC if IMA
 
-	  For more details see Documentation/admin-guide/kdump/kdump.rst
+config ARCH_HAS_CRASH_DUMP
+	def_bool y
 
 config TRANS_TABLE
 	def_bool y