From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH 5/6] xen: arm: correctly round down MFN to 1GB boundary make sure pagetable mask macros as physaddr size Date: Wed, 23 Oct 2013 14:52:04 +0100 Message-ID: <5267D484.4080602@linaro.org> References: <1381416204.17758.36.camel@kazak.uk.xensource.com> <1381416225-31043-5-git-send-email-ian.campbell@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1381416225-31043-5-git-send-email-ian.campbell@citrix.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: Ian Campbell , xen-devel@lists.xen.org Cc: tim@xen.org, Pranavkumar Sawargaonkar , Anup Patel , stefano.stabellini@eu.citrix.com List-Id: xen-devel@lists.xenproject.org On 10/10/2013 03:43 PM, Ian Campbell wrote: > ~FIRST_MASK is nothing like correct for rounding down an MFN. It is the > inverse *and* an address not a framenumber so wrong in every dimension! We > cannot use FIRST_MASK since that would mask off any zeroeth level bits. > Instead calculate the correct value from FIRST_SIZE. > > Signed-off-by: Ian Campbell Acked-by: Julien Grall > --- > xen/arch/arm/mm.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c > index 16bbb39..cc72e78 100644 > --- a/xen/arch/arm/mm.c > +++ b/xen/arch/arm/mm.c > @@ -639,7 +639,7 @@ void __init setup_xenheap_mappings(unsigned long base_mfn, > end_mfn = base_mfn + nr_mfns; > > /* Align to previous 1GB boundary */ > - base_mfn &= ~FIRST_MASK; > + base_mfn &= ~((FIRST_SIZE>>PAGE_SHIFT)-1); > > offset = base_mfn - xenheap_mfn_start; > vaddr = DIRECTMAP_VIRT_START + offset*PAGE_SIZE; > -- Julien Grall