Message ID | 20200326032420.27220-2-pasha.tatashin@soleen.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm64: MMU enabled kexec relocation | expand |
Hi Pavel, On 26/03/2020 03:24, Pavel Tatashin wrote: > Currently, dtb_mem is enabled only when CONFIG_KEXEC_FILE is > enabled. This adds ugly ifdefs to c files. ~s/dtb_mem/ARCH_HAS_KIMAGE_ARCH/ ? dtb_mem is just one member of struct kimage_arch. > Always enabled dtb_mem, when it is not used, it is NULL. > Change the dtb_mem to phys_addr_t, as it is a physical address. Regardless, Reviewed-by: James Morse <james.morse@arm.com> Thanks, James
On Wed, Apr 29, 2020 at 1:00 PM James Morse <james.morse@arm.com> wrote: > > Hi Pavel, > > On 26/03/2020 03:24, Pavel Tatashin wrote: > > Currently, dtb_mem is enabled only when CONFIG_KEXEC_FILE is > > enabled. This adds ugly ifdefs to c files. > > ~s/dtb_mem/ARCH_HAS_KIMAGE_ARCH/ ? > dtb_mem is just one member of struct kimage_arch. > > > > Always enabled dtb_mem, when it is not used, it is NULL. > > Change the dtb_mem to phys_addr_t, as it is a physical address. > > Regardless, > Reviewed-by: James Morse <james.morse@arm.com> Thank you. Pasha > > > Thanks, > > James
diff --git a/arch/arm64/include/asm/kexec.h b/arch/arm64/include/asm/kexec.h index d24b527e8c00..61530ec3a9b1 100644 --- a/arch/arm64/include/asm/kexec.h +++ b/arch/arm64/include/asm/kexec.h @@ -90,18 +90,18 @@ static inline void crash_prepare_suspend(void) {} static inline void crash_post_resume(void) {} #endif -#ifdef CONFIG_KEXEC_FILE #define ARCH_HAS_KIMAGE_ARCH struct kimage_arch { void *dtb; - unsigned long dtb_mem; + phys_addr_t dtb_mem; /* Core ELF header buffer */ void *elf_headers; unsigned long elf_headers_mem; unsigned long elf_headers_sz; }; +#ifdef CONFIG_KEXEC_FILE extern const struct kexec_file_ops kexec_image_ops; struct kimage; diff --git a/arch/arm64/kernel/machine_kexec.c b/arch/arm64/kernel/machine_kexec.c index 8e9c924423b4..ae1bad0156cd 100644 --- a/arch/arm64/kernel/machine_kexec.c +++ b/arch/arm64/kernel/machine_kexec.c @@ -203,11 +203,7 @@ void machine_kexec(struct kimage *kimage) * In kexec_file case, the kernel starts directly without purgatory. */ cpu_soft_restart(reboot_code_buffer_phys, kimage->head, kimage->start, -#ifdef CONFIG_KEXEC_FILE - kimage->arch.dtb_mem); -#else - 0); -#endif + kimage->arch.dtb_mem); BUG(); /* Should never get here. */ }
Currently, dtb_mem is enabled only when CONFIG_KEXEC_FILE is enabled. This adds ugly ifdefs to c files. Always enabled dtb_mem, when it is not used, it is NULL. Change the dtb_mem to phys_addr_t, as it is a physical address. Signed-off-by: Pavel Tatashin <pasha.tatashin@soleen.com> --- arch/arm64/include/asm/kexec.h | 4 ++-- arch/arm64/kernel/machine_kexec.c | 6 +----- 2 files changed, 3 insertions(+), 7 deletions(-)