mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
tools/libelf: fix elf notes check for PVH guest
PVH only requires PHYS32_ENTRY to be set. Return immediately if that's the case. Also remove the printk in pvh_load_kernel. Signed-off-by: Wei Liu <wei.liu2@citrix.com> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
This commit is contained in:
1 parent
83d6b08b8b
commit
2dd3e22949
2 files changed
+8
-5
No files matched your search
@@ -484,10 +484,6 @@ static int __init pvh_load_kernel(struct domain *d, const module_t *image,
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
printk("OS: %s version: %s loader: %s bitness: %s\n", parms.guest_os,
|
||||
parms.guest_ver, parms.loader,
|
||||
elf_64bit(&elf) ? "64-bit" : "32-bit");
|
||||
|
||||
/* Copy the OS image and free temporary buffer. */
|
||||
elf.dest_base = (void *)(parms.virt_kstart - parms.virt_base);
|
||||
elf.dest_size = parms.virt_kend - parms.virt_kstart;
|
||||
|
||||
@@ -381,6 +381,13 @@ static elf_errorstatus elf_xen_note_check(struct elf_binary *elf,
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* PVH only requires one ELF note to be set */
|
||||
if ( parms->phys_entry != UNSET_ADDR32 )
|
||||
{
|
||||
elf_msg(elf, "ELF: Found PVH image\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Check the contents of the Xen notes or guest string. */
|
||||
if ( ((strlen(parms->loader) == 0) ||
|
||||
strncmp(parms->loader, "generic", 7)) &&
|
||||
@@ -389,7 +396,7 @@ static elf_errorstatus elf_xen_note_check(struct elf_binary *elf,
|
||||
{
|
||||
elf_err(elf,
|
||||
"ERROR: Will only load images built for the generic loader or Linux images"
|
||||
" (Not '%.*s' and '%.*s')\n",
|
||||
" (Not '%.*s' and '%.*s') or with PHYS32_ENTRY set\n",
|
||||
(int)sizeof(parms->loader), parms->loader,
|
||||
(int)sizeof(parms->guest_os), parms->guest_os);
|
||||
return -1;
|
||||
|
||||