From 43e99d38cd9253267982f5c29205f2d273f7d65e Mon Sep 17 00:00:00 2001 From: Juergen Gross Date: Tue, 1 Dec 2015 08:49:49 +0100 Subject: [PATCH] libxc: correct domain builder for 64 bit guest with 32 bit tools Commit 8c45adec18e0512c3d34dcafb13414ecba21be6a ("create unmapped initrd in domain builder if supported") introduced an error for building a 64 bit guest with a 32 bit toolset. The initrd start address and size where stored in an unsigned long instead of using a 64 bit type. Signed-off-by: Juergen Gross Tested-by: Boris Ostrovsky Acked-by: Wei Liu --- tools/libxc/include/xc_dom.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/tools/libxc/include/xc_dom.h b/tools/libxc/include/xc_dom.h index 217621600a..fd8c5e8932 100644 --- a/tools/libxc/include/xc_dom.h +++ b/tools/libxc/include/xc_dom.h @@ -98,9 +98,14 @@ struct xc_dom_image { xen_vaddr_t virt_alloc_end; xen_vaddr_t bsd_symtab_start; - /* initrd parameters as specified in start_info page */ - unsigned long initrd_start; - unsigned long initrd_len; + /* + * initrd parameters as specified in start_info page + * Depending on capabilities of the booted kernel this may be a virtual + * address or a pfn. Type is neutral and large enough to hold a virtual + * address of a 64 bit kernel even with 32 bit toolstack. + */ + uint64_t initrd_start; + uint64_t initrd_len; unsigned int alloc_bootstack; xen_vaddr_t virt_pgtab_end; -- 2.30.2