* [PATCHv5 10/12] arm64/kexec: Add PE image format support
[not found] <20250819012428.6217-1-piliu@redhat.com>
@ 2025-08-19 1:24 ` Pingfan Liu
2025-08-19 18:23 ` kernel test robot
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Pingfan Liu @ 2025-08-19 1:24 UTC (permalink / raw)
To: linux-arm-kernel
Cc: Pingfan Liu, Alexei Starovoitov, Daniel Borkmann, John Fastabend,
Andrii Nakryiko, Martin KaFai Lau, Eduard Zingerman, Song Liu,
Yonghong Song, Jeremy Linton, Catalin Marinas, Will Deacon,
Ard Biesheuvel, Simon Horman, Gerd Hoffmann, Vitaly Kuznetsov,
Philipp Rudo, Viktor Malik, Jan Hendrik Farr, Baoquan He,
Dave Young, Andrew Morton, kexec, bpf, systemd-devel
Now everything is ready for kexec PE image parser. Select it on arm64
for zboot and UKI image support.
Signed-off-by: Pingfan Liu <piliu@redhat.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
To: linux-arm-kernel@lists.infradead.org
---
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
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
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCHv5 10/12] arm64/kexec: Add PE image format support
2025-08-19 1:24 ` [PATCHv5 10/12] arm64/kexec: Add PE image format support Pingfan Liu
@ 2025-08-19 18:23 ` kernel test robot
2025-08-19 18:54 ` kernel test robot
2025-08-20 3:09 ` Pingfan Liu
2 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2025-08-19 18:23 UTC (permalink / raw)
To: Pingfan Liu, linux-arm-kernel
Cc: oe-kbuild-all, Pingfan Liu, Alexei Starovoitov, Daniel Borkmann,
John Fastabend, Andrii Nakryiko, Martin KaFai Lau,
Eduard Zingerman, Song Liu, Yonghong Song, Jeremy Linton,
Catalin Marinas, Will Deacon, Ard Biesheuvel, Simon Horman,
Gerd Hoffmann, Vitaly Kuznetsov, Philipp Rudo, Viktor Malik,
Jan Hendrik Farr, Baoquan He, Dave Young, Andrew Morton,
Linux Memory Management List, kexec, bpf, systemd-devel
Hi Pingfan,
kernel test robot noticed the following build errors:
[auto build test ERROR on c17b750b3ad9f45f2b6f7e6f7f4679844244f0b9]
url: https://github.com/intel-lab-lkp/linux/commits/Pingfan-Liu/kexec_file-Make-kexec_image_load_default-global-visible/20250819-093420
base: c17b750b3ad9f45f2b6f7e6f7f4679844244f0b9
patch link: https://lore.kernel.org/r/20250819012428.6217-11-piliu%40redhat.com
patch subject: [PATCHv5 10/12] arm64/kexec: Add PE image format support
config: arm64-randconfig-001-20250819 (https://download.01.org/0day-ci/archive/20250820/202508200205.qEn1adEu-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 14.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250820/202508200205.qEn1adEu-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202508200205.qEn1adEu-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from kernel/kexec_bpf/kexec_pe_parser_bpf.lskel.h:6,
from kernel/kexec_pe_image.c:25:
tools/lib/bpf/skel_internal.h: In function 'skel_finalize_map_data':
tools/lib/bpf/skel_internal.h:155:15: error: implicit declaration of function 'bpf_map_get'; did you mean 'bpf_map_put'? [-Wimplicit-function-declaration]
155 | map = bpf_map_get(fd);
| ^~~~~~~~~~~
| bpf_map_put
>> tools/lib/bpf/skel_internal.h:155:13: error: assignment to 'struct bpf_map *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
155 | map = bpf_map_get(fd);
| ^
kernel/kexec_pe_image.c: In function 'kexec_bpf_prog_run_init':
kernel/kexec_pe_image.c:267:16: error: implicit declaration of function 'register_btf_fmodret_id_set'; did you mean 'register_btf_kfunc_id_set'? [-Wimplicit-function-declaration]
267 | return register_btf_fmodret_id_set(&kexec_modify_return_set);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
| register_btf_kfunc_id_set
kernel/kexec_pe_image.c: In function 'pe_image_load':
kernel/kexec_pe_image.c:312:44: warning: variable 'cmdline_sz' set but not used [-Wunused-but-set-variable]
312 | unsigned long linux_sz, initrd_sz, cmdline_sz, bpf_sz;
| ^~~~~~~~~~
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for KEXEC_PE_IMAGE
Depends on [n]: KEXEC_FILE [=y] && DEBUG_INFO_BTF [=n] && BPF_SYSCALL [=n]
Selected by [y]:
- ARCH_SELECTS_KEXEC_FILE [=y] && KEXEC_FILE [=y]
vim +155 tools/lib/bpf/skel_internal.h
67234743736a6a Alexei Starovoitov 2021-05-13 143
6fe65f1b4db3ff Alexei Starovoitov 2022-02-09 144 static inline void *skel_finalize_map_data(__u64 *init_val, size_t mmap_sz, int flags, int fd)
6fe65f1b4db3ff Alexei Starovoitov 2022-02-09 145 {
6fe65f1b4db3ff Alexei Starovoitov 2022-02-09 146 struct bpf_map *map;
6fe65f1b4db3ff Alexei Starovoitov 2022-02-09 147 void *addr = NULL;
6fe65f1b4db3ff Alexei Starovoitov 2022-02-09 148
6fe65f1b4db3ff Alexei Starovoitov 2022-02-09 149 kvfree((void *) (long) *init_val);
6fe65f1b4db3ff Alexei Starovoitov 2022-02-09 150 *init_val = ~0ULL;
6fe65f1b4db3ff Alexei Starovoitov 2022-02-09 151
6fe65f1b4db3ff Alexei Starovoitov 2022-02-09 152 /* At this point bpf_load_and_run() finished without error and
6fe65f1b4db3ff Alexei Starovoitov 2022-02-09 153 * 'fd' is a valid bpf map FD. All sanity checks below should succeed.
6fe65f1b4db3ff Alexei Starovoitov 2022-02-09 154 */
6fe65f1b4db3ff Alexei Starovoitov 2022-02-09 @155 map = bpf_map_get(fd);
6fe65f1b4db3ff Alexei Starovoitov 2022-02-09 156 if (IS_ERR(map))
6fe65f1b4db3ff Alexei Starovoitov 2022-02-09 157 return NULL;
6fe65f1b4db3ff Alexei Starovoitov 2022-02-09 158 if (map->map_type != BPF_MAP_TYPE_ARRAY)
6fe65f1b4db3ff Alexei Starovoitov 2022-02-09 159 goto out;
6fe65f1b4db3ff Alexei Starovoitov 2022-02-09 160 addr = ((struct bpf_array *)map)->value;
6fe65f1b4db3ff Alexei Starovoitov 2022-02-09 161 /* the addr stays valid, since FD is not closed */
6fe65f1b4db3ff Alexei Starovoitov 2022-02-09 162 out:
6fe65f1b4db3ff Alexei Starovoitov 2022-02-09 163 bpf_map_put(map);
6fe65f1b4db3ff Alexei Starovoitov 2022-02-09 164 return addr;
6fe65f1b4db3ff Alexei Starovoitov 2022-02-09 165 }
6fe65f1b4db3ff Alexei Starovoitov 2022-02-09 166
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCHv5 10/12] arm64/kexec: Add PE image format support
2025-08-19 1:24 ` [PATCHv5 10/12] arm64/kexec: Add PE image format support Pingfan Liu
2025-08-19 18:23 ` kernel test robot
@ 2025-08-19 18:54 ` kernel test robot
2025-08-20 3:09 ` Pingfan Liu
2 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2025-08-19 18:54 UTC (permalink / raw)
To: Pingfan Liu, linux-arm-kernel
Cc: Paul Gazzillo, Necip Fazil Yildiran, oe-kbuild-all, Pingfan Liu,
Alexei Starovoitov, Daniel Borkmann, John Fastabend,
Andrii Nakryiko, Martin KaFai Lau, Eduard Zingerman, Song Liu,
Yonghong Song, Jeremy Linton, Catalin Marinas, Will Deacon,
Ard Biesheuvel, Simon Horman, Gerd Hoffmann, Vitaly Kuznetsov,
Philipp Rudo, Viktor Malik, Jan Hendrik Farr, Baoquan He,
Dave Young, Andrew Morton, Linux Memory Management List, kexec,
bpf, systemd-devel
Hi Pingfan,
kernel test robot noticed the following build warnings:
[auto build test WARNING on c17b750b3ad9f45f2b6f7e6f7f4679844244f0b9]
url: https://github.com/intel-lab-lkp/linux/commits/Pingfan-Liu/kexec_file-Make-kexec_image_load_default-global-visible/20250819-093420
base: c17b750b3ad9f45f2b6f7e6f7f4679844244f0b9
patch link: https://lore.kernel.org/r/20250819012428.6217-11-piliu%40redhat.com
patch subject: [PATCHv5 10/12] arm64/kexec: Add PE image format support
config: arm64-kismet-CONFIG_KEXEC_PE_IMAGE-CONFIG_ARCH_SELECTS_KEXEC_FILE-0-0 (https://download.01.org/0day-ci/archive/20250820/202508200238.hckz21nw-lkp@intel.com/config)
reproduce: (https://download.01.org/0day-ci/archive/20250820/202508200238.hckz21nw-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202508200238.hckz21nw-lkp@intel.com/
kismet warnings: (new ones prefixed by >>)
>> kismet: WARNING: unmet direct dependencies detected for KEXEC_PE_IMAGE when selected by ARCH_SELECTS_KEXEC_FILE
WARNING: unmet direct dependencies detected for KEXEC_PE_IMAGE
Depends on [n]: KEXEC_FILE [=y] && DEBUG_INFO_BTF [=n] && BPF_SYSCALL [=y]
Selected by [y]:
- ARCH_SELECTS_KEXEC_FILE [=y] && KEXEC_FILE [=y]
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCHv5 10/12] arm64/kexec: Add PE image format support
2025-08-19 1:24 ` [PATCHv5 10/12] arm64/kexec: Add PE image format support Pingfan Liu
2025-08-19 18:23 ` kernel test robot
2025-08-19 18:54 ` kernel test robot
@ 2025-08-20 3:09 ` Pingfan Liu
2 siblings, 0 replies; 4+ messages in thread
From: Pingfan Liu @ 2025-08-20 3:09 UTC (permalink / raw)
To: linux-arm-kernel
Cc: Alexei Starovoitov, Daniel Borkmann, John Fastabend,
Andrii Nakryiko, Martin KaFai Lau, Eduard Zingerman, Song Liu,
Yonghong Song, Jeremy Linton, Catalin Marinas, Will Deacon,
Ard Biesheuvel, Simon Horman, Gerd Hoffmann, Vitaly Kuznetsov,
Philipp Rudo, Viktor Malik, Jan Hendrik Farr, Baoquan He,
Dave Young, Andrew Morton, kexec, bpf, systemd-devel
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 <piliu@redhat.com>
> Acked-by: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will@kernel.org>
> To: linux-arm-kernel@lists.infradead.org
> ---
> 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
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-08-20 3:12 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20250819012428.6217-1-piliu@redhat.com>
2025-08-19 1:24 ` [PATCHv5 10/12] arm64/kexec: Add PE image format support Pingfan Liu
2025-08-19 18:23 ` kernel test robot
2025-08-19 18:54 ` kernel test robot
2025-08-20 3:09 ` Pingfan Liu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox