lkml.org 
[lkml]   [2020]   [Dec]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [RFC PATCH 2/4] of: Add a common kexec FDT setup function
From
Date
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



\
 
 \ /
  Last update: 2020-12-12 06:50    [W:0.056 / U:0.916 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site