On Tue, Aug 19, 2025 at 09:24:26AM +0800, Pingfan Liu wrote:
> Now everything is ready for kexec PE image parser. Select it on arm64
> for zboot and UKI image support.
>
> Signed-off-by: Pingfan Liu <[email protected]>
> Acked-by: Catalin Marinas <[email protected]>
> Cc: Will Deacon <[email protected]>
> To: [email protected]
> ---
> arch/arm64/Kconfig | 1 +
> arch/arm64/include/asm/kexec.h | 1 +
> arch/arm64/kernel/machine_kexec_file.c | 3 +++
> 3 files changed, 5 insertions(+)
>
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index e9bbfacc35a64..97d9595a5ee86 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -1608,6 +1608,7 @@ config ARCH_SELECTS_KEXEC_FILE
> def_bool y
> depends on KEXEC_FILE
> select HAVE_IMA_KEXEC if IMA
> + select KEXEC_PE_IMAGE
According to the kernel test robot's report, this may fail due to a dependency
issue.
I will fix it in the next version as:
select KEXEC_PE_IMAGE if DEBUG_INFO_BTF && BPF_SYSCALL
This dependency is introduced in patch [5/12].
Cc Catalin, since I'm making changes to address this issue, I'll drop your ack
in the next version and would appreciate if you could review it again.
Thanks,
Pingfan
>
> config ARCH_SUPPORTS_KEXEC_SIG
> def_bool y
> diff --git a/arch/arm64/include/asm/kexec.h b/arch/arm64/include/asm/kexec.h
> index 4d9cc7a76d9ca..d50796bd2f1e6 100644
> --- a/arch/arm64/include/asm/kexec.h
> +++ b/arch/arm64/include/asm/kexec.h
> @@ -120,6 +120,7 @@ struct kimage_arch {
>
> #ifdef CONFIG_KEXEC_FILE
> extern const struct kexec_file_ops kexec_image_ops;
> +extern const struct kexec_file_ops kexec_pe_image_ops;
>
> int arch_kimage_file_post_load_cleanup(struct kimage *image);
> #define arch_kimage_file_post_load_cleanup arch_kimage_file_post_load_cleanup
> diff --git a/arch/arm64/kernel/machine_kexec_file.c
> b/arch/arm64/kernel/machine_kexec_file.c
> index af1ca875c52ce..7c544c385a9ab 100644
> --- a/arch/arm64/kernel/machine_kexec_file.c
> +++ b/arch/arm64/kernel/machine_kexec_file.c
> @@ -24,6 +24,9 @@
>
> const struct kexec_file_ops * const kexec_file_loaders[] = {
> &kexec_image_ops,
> +#ifdef CONFIG_KEXEC_PE_IMAGE
> + &kexec_pe_image_ops,
> +#endif
> NULL
> };
>
> --
> 2.49.0
>