On 03/17/25 at 06:04pm, steven chen wrote: ...snip... > --- > kernel/kexec_file.c | 10 ++++++ > security/integrity/ima/ima_kexec.c | 51 ++++++++++++++++++------------ > 2 files changed, 40 insertions(+), 21 deletions(-) > > diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c > index 606132253c79..ab449b43aaee 100644 > --- a/kernel/kexec_file.c > +++ b/kernel/kexec_file.c > @@ -201,6 +201,13 @@ kimage_validate_signature(struct kimage *image) > } > #endif > > +static void kimage_file_post_load(struct kimage *image) > +{ > +#ifdef CONFIG_IMA_KEXEC > + ima_kexec_post_load(image); > +#endif > +} > + > /* > * In file mode list of segments is prepared by kernel. Copy relevant > * data from user space, do error checking, prepare segment list > @@ -428,6 +435,9 @@ SYSCALL_DEFINE5(kexec_file_load, int, kernel_fd, int, initrd_fd, > > kimage_terminate(image); > > + if (!(flags & KEXEC_FILE_ON_CRASH)) > + kimage_file_post_load(image); machine_kexec_post_load() is called by both kexec_load and kexec_file_load, we should use it to do things post load, but not introducing another kimage_file_post_load(). > + > ret = machine_kexec_post_load(image); > if (ret) > goto out; ...snip...