Commit 179350f0 authored by Lakshmi Ramasubramanian's avatar Lakshmi Ramasubramanian Committed by Rob Herring

x86: Use ELF fields defined in 'struct kimage'

ELF related fields elf_headers, elf_headers_sz, and elf_load_addr
have been moved from 'struct kimage_arch' to 'struct kimage'.

Use the ELF fields defined in 'struct kimage'.
Suggested-by: default avatarRob Herring <robh@kernel.org>
Reported-by: default avatarkernel test robot <lkp@intel.com>
Signed-off-by: default avatarLakshmi Ramasubramanian <nramas@linux.microsoft.com>
Signed-off-by: default avatarRob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20210221174930.27324-5-nramas@linux.microsoft.com
parent e6635bab
...@@ -150,11 +150,6 @@ struct kimage_arch { ...@@ -150,11 +150,6 @@ struct kimage_arch {
pud_t *pud; pud_t *pud;
pmd_t *pmd; pmd_t *pmd;
pte_t *pte; pte_t *pte;
/* Core ELF header buffer */
void *elf_headers;
unsigned long elf_headers_sz;
unsigned long elf_load_addr;
}; };
#endif /* CONFIG_X86_32 */ #endif /* CONFIG_X86_32 */
......
...@@ -323,8 +323,8 @@ static int memmap_exclude_ranges(struct kimage *image, struct crash_mem *cmem, ...@@ -323,8 +323,8 @@ static int memmap_exclude_ranges(struct kimage *image, struct crash_mem *cmem,
cmem->nr_ranges = 1; cmem->nr_ranges = 1;
/* Exclude elf header region */ /* Exclude elf header region */
start = image->arch.elf_load_addr; start = image->elf_load_addr;
end = start + image->arch.elf_headers_sz - 1; end = start + image->elf_headers_sz - 1;
return crash_exclude_mem_range(cmem, start, end); return crash_exclude_mem_range(cmem, start, end);
} }
...@@ -407,20 +407,20 @@ int crash_load_segments(struct kimage *image) ...@@ -407,20 +407,20 @@ int crash_load_segments(struct kimage *image)
if (ret) if (ret)
return ret; return ret;
image->arch.elf_headers = kbuf.buffer; image->elf_headers = kbuf.buffer;
image->arch.elf_headers_sz = kbuf.bufsz; image->elf_headers_sz = kbuf.bufsz;
kbuf.memsz = kbuf.bufsz; kbuf.memsz = kbuf.bufsz;
kbuf.buf_align = ELF_CORE_HEADER_ALIGN; kbuf.buf_align = ELF_CORE_HEADER_ALIGN;
kbuf.mem = KEXEC_BUF_MEM_UNKNOWN; kbuf.mem = KEXEC_BUF_MEM_UNKNOWN;
ret = kexec_add_buffer(&kbuf); ret = kexec_add_buffer(&kbuf);
if (ret) { if (ret) {
vfree((void *)image->arch.elf_headers); vfree((void *)image->elf_headers);
return ret; return ret;
} }
image->arch.elf_load_addr = kbuf.mem; image->elf_load_addr = kbuf.mem;
pr_debug("Loaded ELF headers at 0x%lx bufsz=0x%lx memsz=0x%lx\n", pr_debug("Loaded ELF headers at 0x%lx bufsz=0x%lx memsz=0x%lx\n",
image->arch.elf_load_addr, kbuf.bufsz, kbuf.bufsz); image->elf_load_addr, kbuf.bufsz, kbuf.bufsz);
return ret; return ret;
} }
......
...@@ -75,7 +75,7 @@ static int setup_cmdline(struct kimage *image, struct boot_params *params, ...@@ -75,7 +75,7 @@ static int setup_cmdline(struct kimage *image, struct boot_params *params,
if (image->type == KEXEC_TYPE_CRASH) { if (image->type == KEXEC_TYPE_CRASH) {
len = sprintf(cmdline_ptr, len = sprintf(cmdline_ptr,
"elfcorehdr=0x%lx ", image->arch.elf_load_addr); "elfcorehdr=0x%lx ", image->elf_load_addr);
} }
memcpy(cmdline_ptr + len, cmdline, cmdline_len); memcpy(cmdline_ptr + len, cmdline, cmdline_len);
cmdline_len += len; cmdline_len += len;
......
...@@ -402,8 +402,8 @@ void machine_kexec(struct kimage *image) ...@@ -402,8 +402,8 @@ void machine_kexec(struct kimage *image)
#ifdef CONFIG_KEXEC_FILE #ifdef CONFIG_KEXEC_FILE
void *arch_kexec_kernel_image_load(struct kimage *image) void *arch_kexec_kernel_image_load(struct kimage *image)
{ {
vfree(image->arch.elf_headers); vfree(image->elf_headers);
image->arch.elf_headers = NULL; image->elf_headers = NULL;
if (!image->fops || !image->fops->load) if (!image->fops || !image->fops->load)
return ERR_PTR(-ENOEXEC); return ERR_PTR(-ENOEXEC);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment