From 52118a8d02fbf84e29526288c3fc48a20eed8fa9 Mon Sep 17 00:00:00 2001 From: Marc Hartmayer Date: Mon, 4 Oct 2021 14:09:29 +0000 Subject: [PATCH] zdump: loads_init: refactor the code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use `mem_chunk->size` instead of recalculate it. In addition, assign `p_vaddr` to `p_paddr` to make clear that they must be equal and rename the parameter `load_offset` to `elf_offset` to make clear that the offset in the ELF vmcore file is meant. Finally rename `loads_init` to `load_phdrs_init`. Reviewed-by: Alexander Egorenkov Signed-off-by: Marc Hartmayer Signed-off-by: Jan Höppner --- zdump/dfo_elf.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/zdump/dfo_elf.c b/zdump/dfo_elf.c index 93f7c4b6..9b369340 100644 --- a/zdump/dfo_elf.c +++ b/zdump/dfo_elf.c @@ -63,19 +63,19 @@ static void *ehdr_init(Elf64_Ehdr *ehdr) } /* - * Initialize ELF loads + * Initialize ELF loads program headers */ -static u64 loads_init(Elf64_Phdr *phdr, u64 loads_offset) +static u64 load_phdrs_init(Elf64_Phdr *phdr, u64 elf_offset) { struct dfi_mem_chunk *mem_chunk; u64 mem_size = 0; dfi_mem_chunk_iterate(mem_chunk) { phdr->p_type = PT_LOAD; - phdr->p_offset = loads_offset; + phdr->p_offset = elf_offset; phdr->p_vaddr = mem_chunk->start; - phdr->p_paddr = mem_chunk->start; - phdr->p_memsz = mem_chunk->end - mem_chunk->start + 1; + phdr->p_paddr = phdr->p_vaddr; + phdr->p_memsz = mem_chunk->size; if (mem_chunk->read_fn == dfi_mem_chunk_read_zero) /* Zero memory chunk */ phdr->p_filesz = 0; @@ -83,7 +83,7 @@ static u64 loads_init(Elf64_Phdr *phdr, u64 loads_offset) phdr->p_filesz = phdr->p_memsz; phdr->p_flags = PF_R | PF_W | PF_X; phdr->p_align = PAGE_SIZE; - loads_offset += phdr->p_filesz; + elf_offset += phdr->p_filesz; mem_size += phdr->p_memsz; phdr++; } @@ -332,7 +332,7 @@ static void dfo_elf_init(void) ptr = notes_init(phdr_notes, ptr, hdr_off); /* Init loads */ hdr_off = PTR_DIFF(ptr, l.hdr); - loads_init(phdr_loads, hdr_off); + load_phdrs_init(phdr_loads, hdr_off); l.hdr_size = hdr_off; if (l.hdr_size > alloc_size) ABORT("hdr_size=%u alloc_size=%u", l.hdr_size, alloc_size);