From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: Re: [PATCH] libxc: correct domain builder for 64 bit guest with 32 bit tools Date: Tue, 1 Dec 2015 10:07:10 +0000 Message-ID: <20151201100710.GL21588@citrix.com> References: <1448956189-22471-1-git-send-email-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <1448956189-22471-1-git-send-email-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Juergen Gross Cc: wei.liu2@citrix.com, Ian.Campbell@citrix.com, stefano.stabellini@eu.citrix.com, ian.jackson@eu.citrix.com, xen-devel@lists.xen.org, boris.ostrovsky@oracle.com List-Id: xen-devel@lists.xenproject.org On Tue, Dec 01, 2015 at 08:49:49AM +0100, Juergen Gross wrote: > 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 Thanks for fixing this. > --- > 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 2176216..fd8c5e8 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.6.2 >