[PATCH 3/5] arm64: change the prototype of image probe function

Simon Horman horms at kernel.org
Fri May 5 08:42:04 PDT 2023


On Fri, May 05, 2023 at 10:54:35AM +0800, Pingfan Liu wrote:
> Changing the aarch64 probe's prototype  from
> 	typedef int (probe_t)(const char *kernel_buf, off_t kernel_size);
> to
> 	typedef int (probe_t)(const char *kernel_buf, off_t kernel_size, struct kexec_info *info);
> 
> Later, info can be used to return both the file descriptor and parsed kernel
> buffer. The fd is passed to sys_kexec_file_load, and the parsed kernel
> buffer is used by image's load function.
> 
> Signed-off-by: Pingfan Liu <piliu at redhat.com>

Hi Pingfan,

I am seeing a build failure on ARM (32bit).

  138 | int zImage_arm_probe(const char *UNUSED(buf), off_t UNUSED(len))
      |     ^~~~~~~~~~~~~~~~
In file included from ../../kexec/arch/arm/kexec-zImage-arm.c:21:
../../kexec/arch/arm/kexec-arm.h:12:5: note: previous declaration of ‘zImage_arm_probe’ was here
   12 | int zImage_arm_probe(const char *buf, off_t len, struct kexec_info *info);
      |     ^~~~~~~~~~~~~~~~
make[1]: *** [Makefile:124: kexec/arch/arm/kexec-zImage-arm.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory '/home/runner/work/kexec-tools/kexec-tools/kexec-tools-2.0.26.git/_build/sub'
make: *** [Makefile:276: distcheck] Error 2
Error: Process completed with exit code 2.

Link: https://github.com/horms/kexec-tools/actions/runs/4895124719/jobs/8740272103

...

> diff --git a/kexec/kexec.h b/kexec/kexec.h
> index 0d820ad..6e8430e 100644
> --- a/kexec/kexec.h
> +++ b/kexec/kexec.h
> @@ -191,7 +191,13 @@ unsigned long locate_hole(struct kexec_info *info,
>  	unsigned long hole_min, unsigned long hole_max,
>  	int hole_end);
>  
> +#ifndef __aarch64__
>  typedef int (probe_t)(const char *kernel_buf, off_t kernel_size);
> +#else
> +typedef int (probe_t)(const char *kern_fname, off_t kernel_size,
> +	struct kexec_info *info);
> +#endif
> +

This seems kind of unfortunate.
Could we update the prototype for all architectures?



More information about the kexec mailing list