Re: [RFC PATCH 2/4] of: Add a common kexec FDT setup function
From: Lakshmi Ramasubramanian <hidden>
Date: 2020-12-12 05:48:17
Also in:
linux-devicetree, linux-integrity, lkml
On 12/11/20 6:17 PM, Thiago Jung Bauermann wrote:
Lakshmi Ramasubramanian [off-list ref] writes:quoted
On 12/11/20 2:10 PM, Rob Herring wrote: Hi Rob,quoted
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.cdiff --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.oFor 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 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel