Lakshmi Ramasubramanian <nra...@linux.microsoft.com> writes:
> On 2/11/21 6:11 PM, Thiago Jung Bauermann wrote: >> Lakshmi Ramasubramanian <nra...@linux.microsoft.com> writes: >> >>> On 2/11/21 3:59 PM, Thiago Jung Bauermann wrote: >>>> Lakshmi Ramasubramanian <nra...@linux.microsoft.com> writes: >>>> >>>>> On 2/11/21 9:42 AM, Lakshmi Ramasubramanian wrote: >>>>>> Hi Rob, >>>>>> [PATCH] powerpc: Rename kexec elfcorehdr_addr to elf_headers_mem >>>>>> This change causes build problem for x86_64 architecture (please see the >>>>>> mail from kernel test bot below) since arch/x86/include/asm/kexec.h uses >>>>>> "elf_load_addr" for the ELF header buffer address and not >>>>>> "elf_headers_mem". >>>>>> struct kimage_arch { >>>>>> ... >>>>>> /* Core ELF header buffer */ >>>>>> void *elf_headers; >>>>>> unsigned long elf_headers_sz; >>>>>> unsigned long elf_load_addr; >>>>>> }; >>>>>> I am thinking of limiting of_kexec_alloc_and_setup_fdt() to ARM64 and >>>>>> PPC64 since they are the only ones using this function now. >>>>>> #if defined(CONFIG_ARM64) && defined(CONFIG_PPC64) >>>>> Sorry - I meant to say >>>>> #if defined(CONFIG_ARM64) || defined(CONFIG_PPC64) >>>>> >>>> Does it build correctly if you rename elf_headers_mem to elf_load_addr? >>>> Or the other way around, renaming x86's elf_load_addr to >>>> elf_headers_mem. I don't really have a preference. >>> >>> Yes - changing arm64 and ppc from "elf_headers_mem" to "elf_load_addr" >>> builds >>> fine. >>> >>> But I am concerned about a few other architectures that also define "struct >>> kimage_arch" such as "parisc", "arm" which do not have any ELF related >>> fields. >>> They would not build if the config defines CONFIG_KEXEC_FILE and >>> CONFIG_OF_FLATTREE. >>> >>> Do you think that could be an issue? >> That's a good point. But in practice, arm doesn't support >> CONFIG_KEXEC_FILE. And while parisc does support CONFIG_KEXEC_FILE, as >> far as I could determine it doesn't support CONFIG_OF. >> So IMHO we don't need to worry about them. We'll cross that bridge if we >> get there. If they ever implement KEXEC_FILE or OF_FLATTREE support, >> then (again, IMHO) the natural solution would be for them to name the >> ELF header member the same way the other arches do. >> And since no other architecture defines struct kimage_arch, those are >> the only ones we need to consider. >> > > Sounds good Thiago. > > I'll rename arm64 and ppc kimage_arch ELF address field to match that defined > for x86/x64. > > Also, will add "fdt_size" param to of_kexec_alloc_and_setup_fdt(). For now, > I'll > use 2*fdt_totalsize(initial_boot_params) for ppc. > > Will send the updated patches shortly. Sounds good. There will be a small conflict with powerpc/next because of the patch I mentioned, but it's simple to fix by whoever merges the series. -- Thiago Jung Bauermann IBM Linux Technology Center