All of lore.kernel.org
 help / color / mirror / Atom feed
From: Julien Grall <julien.grall@linaro.org>
To: Ian Campbell <Ian.Campbell@citrix.com>
Cc: xen-devel@lists.xenproject.org, tim@xen.org,
	ian.jackson@eu.citrix.com, stefano.stabellini@citrix.com,
	patches@linaro.org
Subject: Re: [PATCH] libxc/arm: align to page size the base address of the device tree
Date: Wed, 20 Nov 2013 13:04:25 +0000	[thread overview]
Message-ID: <528CB359.4060200@linaro.org> (raw)
In-Reply-To: <1384940907.28441.11.camel@kazak.uk.xensource.com>



On 11/20/2013 09:48 AM, Ian Campbell wrote:
> On Tue, 2013-11-19 at 18:52 +0000, Julien Grall wrote:
>> xc_dom_alloc_segment requires start address to be page align.
>
> I wonder why I didn't see this? It seems very unlikely that my dtb would
> be exactly page sized, yet it works... Ah, I have >128M of RAM in my
> guest so the base would be 128M. Well spotted.
>
> I think it would be slightly preferable to round dtbsize up to a page.
> e.g. the following. What do you think?
>

Sounds good to me. I wrote my patch in the other way because I though 
RAM size can be non-page aligned.

> 8>------------------
>
>  From 079a2815d86567de1cbb541541d08a0b9ac3d18d Mon Sep 17 00:00:00 2001
> From: Ian Campbell <ian.campbell@citrix.com>
> Date: Wed, 20 Nov 2013 09:45:32 +0000
> Subject: [PATCH] libxl: arm: ensure DTB is page aligned
>
> xc_dom_alloc_segment requires this. Since rambase and ramend are both page
> aligned, rounding up the DTB is sufficient.
>
> Reported-by: Julien Grall <julien.grall@linaro.org>
> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
> ---
>   tools/libxc/xc_dom_arm.c |    2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/libxc/xc_dom_arm.c b/tools/libxc/xc_dom_arm.c
> index ffe575b..a40e04d 100644
> --- a/tools/libxc/xc_dom_arm.c
> +++ b/tools/libxc/xc_dom_arm.c
> @@ -282,7 +282,7 @@ int arch_setup_meminit(struct xc_dom_image *dom)
>       {
>           const uint64_t rambase = dom->rambase_pfn << XC_PAGE_SHIFT;
>           const uint64_t ramend = rambase + ( dom->total_pages << XC_PAGE_SHIFT );
> -        const uint64_t dtbsize = ( dom->devicetree_size + 3 ) & ~0x3;
> +        const uint64_t dtbsize = ROUNDUP(dom->devicetree_size, XC_PAGE_SHIFT);

XC_PAGE_SHIFT only contains the shift. You should use XC_PAGE_SIZE.

Even better, XC_DOM_PAGE_SIZE(dom), so we don't hardcode the size.

-- 
Julien Grall

  reply	other threads:[~2013-11-20 13:04 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-19 18:52 [PATCH] libxc/arm: align to page size the base address of the device tree Julien Grall
2013-11-20  9:48 ` Ian Campbell
2013-11-20 13:04   ` Julien Grall [this message]
2013-11-20 13:13     ` Ian Campbell
2013-11-20 13:17       ` Julien Grall
2013-11-20 13:30         ` Ian Campbell
2013-11-20 16:16           ` Julien Grall
2013-11-21 11:10             ` Ian Campbell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=528CB359.4060200@linaro.org \
    --to=julien.grall@linaro.org \
    --cc=Ian.Campbell@citrix.com \
    --cc=ian.jackson@eu.citrix.com \
    --cc=patches@linaro.org \
    --cc=stefano.stabellini@citrix.com \
    --cc=tim@xen.org \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.