Hi Simon, On Wednesday 01 March 2017 12:43 PM, Dave Young wrote: > On 03/01/17 at 11:19am, Pratyush Anand wrote: >> Currently, all the p_paddr of PT_LOAD headers are assigned to 0, which >> is not correct and could be misleading, since 0 is a valid physical >> address. >> >> Upstream kernel commit "464920104bf7 /proc/kcore: update physical >> address for kcore ram and text" fixed it and now invalid PT_LOAD is >> assigned as -1. >> >> kexec/arch/i386/crashdump-x86.c:get_kernel_vaddr_and_size() uses kcore >> interface and so calls build_mem_phdrs() for kcore PT_LOAD headers. >> >> This patch fixes build_mem_phdrs() to check if p_paddr is invalid. Any comment on this? >> >> Signed-off-by: Pratyush Anand <panand at redhat.com> >> --- >> kexec/kexec-elf.c | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/kexec/kexec-elf.c b/kexec/kexec-elf.c >> index 1d6320a2f0e6..be60bbd48486 100644 >> --- a/kexec/kexec-elf.c >> +++ b/kexec/kexec-elf.c >> @@ -432,7 +432,8 @@ static int build_mem_phdrs(const char *buf, off_t len, struct mem_ehdr *ehdr, >> } >> return -1; >> } >> - if ((phdr->p_paddr + phdr->p_memsz) < phdr->p_paddr) { >> + if (phdr->p_paddr != (unsigned long long)-1 && >> + (phdr->p_paddr + phdr->p_memsz) < phdr->p_paddr) { >> /* The memory address wraps */ >> if (probe_debug) { >> fprintf(stderr, "ELF address wrap around\n"); >> -- >> 2.9.3 >> > > Acked-by: Dave Young <dyoung at redhat.com> > ~Pratyush