|
@@ -192,7 +192,7 @@ static void write_elf64_load(DumpState *s, MemoryMapping *memory_mapping,
|
|
|
phdr.p_paddr = cpu_to_dump64(s, memory_mapping->phys_addr);
|
|
|
phdr.p_filesz = cpu_to_dump64(s, filesz);
|
|
|
phdr.p_memsz = cpu_to_dump64(s, memory_mapping->length);
|
|
|
- phdr.p_vaddr = cpu_to_dump64(s, memory_mapping->virt_addr);
|
|
|
+ phdr.p_vaddr = cpu_to_dump64(s, memory_mapping->virt_addr) ?: phdr.p_paddr;
|
|
|
|
|
|
assert(memory_mapping->length >= filesz);
|
|
|
|
|
@@ -216,7 +216,8 @@ static void write_elf32_load(DumpState *s, MemoryMapping *memory_mapping,
|
|
|
phdr.p_paddr = cpu_to_dump32(s, memory_mapping->phys_addr);
|
|
|
phdr.p_filesz = cpu_to_dump32(s, filesz);
|
|
|
phdr.p_memsz = cpu_to_dump32(s, memory_mapping->length);
|
|
|
- phdr.p_vaddr = cpu_to_dump32(s, memory_mapping->virt_addr);
|
|
|
+ phdr.p_vaddr =
|
|
|
+ cpu_to_dump32(s, memory_mapping->virt_addr) ?: phdr.p_paddr;
|
|
|
|
|
|
assert(memory_mapping->length >= filesz);
|
|
|
|