Lakshmi Ramasubramanian <nramas@xxxxxxxxxxxxxxxxxxx> writes: > On 12/11/20 2:10 PM, Rob Herring wrote: > > Hi Rob, > >> Both arm64 and powerpc do essentially the same FDT /chosen setup for >> kexec. We can simply combine everything each arch does. The differences >> are either omissions that arm64 should have or additional properties >> that will be ignored. >> The differences relative to the arm64 version: >> - If /chosen doesn't exist, it will be created (should never happen). >> - Any old dtb and initrd reserved memory will be released. >> - The new initrd and elfcorehdr are marked reserved. >> - "linux,booted-from-kexec" is set. >> The differences relative to the powerpc version: >> - "kaslr-seed" and "rng-seed" may be set. >> - "linux,elfcorehdr" is set. >> - Any existing "linux,usable-memory-range" is removed. >> Signed-off-by: Rob Herring <robh@xxxxxxxxxx> >> --- >> This could be taken a step further and do the allocation of the new >> FDT. The difference is arm64 uses vmalloc and powerpc uses kmalloc. The >> arm64 version also retries with a bigger allocation. That seems >> unnecessary. >> --- >> drivers/of/Makefile | 1 + >> drivers/of/kexec.c | 228 ++++++++++++++++++++++++++++++++++++++++++++ >> include/linux/of.h | 5 + >> 3 files changed, 234 insertions(+) >> create mode 100644 drivers/of/kexec.c >> diff --git a/drivers/of/Makefile b/drivers/of/Makefile >> index 6e1e5212f058..8ce11955afde 100644 >> --- a/drivers/of/Makefile >> +++ b/drivers/of/Makefile >> @@ -13,5 +13,6 @@ obj-$(CONFIG_OF_RESERVED_MEM) += of_reserved_mem.o >> obj-$(CONFIG_OF_RESOLVE) += resolver.o >> obj-$(CONFIG_OF_OVERLAY) += overlay.o >> obj-$(CONFIG_OF_NUMA) += of_numa.o >> +obj-$(CONFIG_KEXEC_FILE) += kexec.o > > For the functions moved from powerpc & arm64 to "drivers/of/kexec.c" in this > patch, compiling kexec.c when CONFIG_KEXEC_FILE is enabled is fine. But when > more functions (such as remove_ima_buffer()) are moved to this file, Makefile > needs to be updated for other ima kexec related CONFIGs. IMA kexec is only available if CONFIG_KEXEC_FILE is enabled, so I don't understand what problem you are seeing. -- Thiago Jung Bauermann IBM Linux Technology Center