On 01/19/22 at 04:23pm, Baoquan He wrote: > On 12/07/21 at 02:52pm, Eric DeVolder wrote: > > This change adds members to struct kimage to facilitate crash > > hotplug support. > > > > This change also defines crash hotplug events and associated > > prototypes. > > > > Signed-off-by: Eric DeVolder <eric.devolder@xxxxxxxxxx> > > --- > > include/linux/kexec.h | 21 +++++++++++++++++++-- > > 1 file changed, 19 insertions(+), 2 deletions(-) > > > > diff --git a/include/linux/kexec.h b/include/linux/kexec.h > > index 0c994ae37729..068f853f1c65 100644 > > --- a/include/linux/kexec.h > > +++ b/include/linux/kexec.h > > @@ -221,8 +221,9 @@ struct crash_mem { > > extern int crash_exclude_mem_range(struct crash_mem *mem, > > unsigned long long mstart, > > unsigned long long mend); > > -extern int crash_prepare_elf64_headers(struct crash_mem *mem, int kernel_map, > > - void **addr, unsigned long *sz); > > +extern int crash_prepare_elf64_headers(struct kimage *image, > > + struct crash_mem *mem, int kernel_map, > > + void **addr, unsigned long *sz); > > #endif /* CONFIG_KEXEC_FILE */ > > > > #ifdef CONFIG_KEXEC_ELF > > @@ -299,6 +300,13 @@ struct kimage { > > > > /* Information for loading purgatory */ > > struct purgatory_info purgatory_info; > > + > > +#ifdef CONFIG_CRASH_HOTPLUG > > + bool hotplug_event; > > + int offlinecpu; > > + bool elf_index_valid; > > + int elf_index; > > Do we really need elf_index_valid? Can we initialize elf_index to , e.g '-1', > then check if the value is valid? Sorry, please ignore this one, I will add this comment in v3 thread. > > > +#endif > > #endif > > > > #ifdef CONFIG_IMA_KEXEC > > @@ -315,6 +323,15 @@ struct kimage { > > unsigned long elf_load_addr; > > }; > > > > +#ifdef CONFIG_CRASH_HOTPLUG > > +void arch_crash_hotplug_handler(struct kimage *image, > > + unsigned int hp_action, unsigned long a, unsigned long b); > > +#define KEXEC_CRASH_HP_REMOVE_CPU 0 > > +#define KEXEC_CRASH_HP_ADD_CPU 1 > > +#define KEXEC_CRASH_HP_REMOVE_MEMORY 2 > > +#define KEXEC_CRASH_HP_ADD_MEMORY 3 > > +#endif /* CONFIG_CRASH_HOTPLUG */ > > + > > /* kexec interface functions */ > > extern void machine_kexec(struct kimage *image); > > extern int machine_kexec_prepare(struct kimage *image); > > -- > > 2.27.0 > > > _______________________________________________ kexec mailing list kexec@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/kexec