[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [RFC PATCH 3/3] libelf: PVH: only allow elf_paddr_offset of 0
Modern Linux and FreeBSD hardcode it to 0. Just drop its use for PVH. Signed-off-by: Jason Andryuk <jandryuk@xxxxxxxxx> --- xen/arch/x86/hvm/dom0_build.c | 2 +- xen/common/libelf/libelf-dominfo.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c index 552448ce5d..335321ed3e 100644 --- a/xen/arch/x86/hvm/dom0_build.c +++ b/xen/arch/x86/hvm/dom0_build.c @@ -574,7 +574,7 @@ static int __init pvh_load_kernel(struct domain *d, const module_t *image, } /* Copy the OS image and free temporary buffer. */ - elf.dest_base = (void *)parms.phys_kstart - parms.elf_paddr_offset; + elf.dest_base = (void *)parms.phys_kstart; elf.dest_size = parms.phys_kend - parms.phys_kstart; elf_set_vcpu(&elf, v); diff --git a/xen/common/libelf/libelf-dominfo.c b/xen/common/libelf/libelf-dominfo.c index 13eb39ec52..12feb8755e 100644 --- a/xen/common/libelf/libelf-dominfo.c +++ b/xen/common/libelf/libelf-dominfo.c @@ -433,6 +433,12 @@ static elf_errorstatus elf_xen_addr_calc_check_pvh(struct elf_binary *elf, parms->phys_kend = elf->bsd_symtab_pend; } + if ( parms->elf_paddr_offset != 0 ) { + elf_err(elf, "ERROR: ELF elf_paddr_offset (0x" PRIx64 ") is non-zero\n", + parms->elf_paddr_offset); + return -1; + } + elf_msg(elf, "ELF: addresses:\n"); elf_msg(elf, " phys_kstart = 0x%" PRIx64 "\n", parms->phys_kstart); elf_msg(elf, " phys_kend = 0x%" PRIx64 "\n", parms->phys_kend); -- 2.31.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |