From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH 1 of 8] tools: libxc: allow HVM firmware to be loaded at an arbitrary alignment Date: Fri, 13 May 2011 10:03:05 -0400 Message-ID: <20110513140305.GD6042@dumpdata.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Ian Campbell Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org On Fri, May 13, 2011 at 02:42:30PM +0100, Ian Campbell wrote: > # HG changeset patch > # User Ian Campbell > # Date 1305294079 -3600 > # Node ID c5c7ae5f33b16ee03535e9c688ad9bee2510b2b6 > # Parent 9476bc07db2c654b266ab1f1c9ff0c65f401d74d > tools: libxc: allow HVM firmware to be loaded at an arbitrary alignment > > Enables direct loading of e.g. seabios.elf. > > Signed-off-by: Ian Campbell > > diff -r 9476bc07db2c -r c5c7ae5f33b1 tools/libxc/xc_hvm_build.c > --- a/tools/libxc/xc_hvm_build.c Fri May 13 14:41:19 2011 +0100 > +++ b/tools/libxc/xc_hvm_build.c Fri May 13 14:41:19 2011 +0100 > @@ -88,7 +88,9 @@ static int loadelfimage( > struct elf_binary *elf, uint32_t dom, unsigned long *parray) > { > privcmd_mmap_entry_t *entries = NULL; > - size_t pages = (elf->pend - elf->pstart + PAGE_SIZE - 1) >> PAGE_SHIFT; > + unsigned long pfn_start = elf->pstart >> PAGE_SHIFT; > + unsigned long pfn_end = (elf->pend + PAGE_SIZE - 1) >> PAGE_SHIFT; > + size_t pages = pfn_end - pfn_start; > int i, rc = -1; > > /* Map address space for initial elf image. */ > @@ -105,6 +107,8 @@ static int loadelfimage( > if ( elf->dest == NULL ) > goto err; > > + elf->dest += elf->pstart & 4095; Whoa. Decimal numbers! Threw me off when I saw this - so used to 0xfff. :-)