Messages in this thread | | | Subject | Re: [RFC PATCH 2/4] of: Add a common kexec FDT setup function | From | Lakshmi Ramasubramanian <> | Date | Fri, 11 Dec 2020 21:46:27 -0800 |
| |
On 12/11/20 6:17 PM, Thiago Jung Bauermann wrote: > > Lakshmi Ramasubramanian <nramas@linux.microsoft.com> 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@kernel.org> >>> --- >>> 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. >
delete_fdt_mem_rsv() and setup_fdt() functions are defined when CONFIG_KEXEC_FILE is enabled. So there is no problem with this patch as such.
I was thinking when other arch independent functions such as do_get_kexec_buffer() and remove_ima_buffer() are moved to "drivers/of/kexec.c", they need to be defined only when CONFIG_HAVE_IMA_KEXEC is enabled.
If CONFIG_HAVE_IMA_KEXEC is enabled, CONFIG_KEXEC_FILE is also enabled. So there shouldn't be a problem moving those functions to "drivers/of/kexec.c". You are right Thiago. Thanks.
-lakshmi
| |