From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH v2 06/10] xen/arm: Retrieve p2m type in get_page_from_gfn Date: Tue, 10 Dec 2013 02:04:18 +0000 Message-ID: <52A676A2.6020103@linaro.org> References: <1386560047-17500-1-git-send-email-julien.grall@linaro.org> <1386560047-17500-7-git-send-email-julien.grall@linaro.org> <1386605178.7812.40.camel@kazak.uk.xensource.com> <52A5F4BB.3010000@linaro.org> <1386608281.7812.73.camel@kazak.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1VqCgQ-0004g6-45 for xen-devel@lists.xenproject.org; Tue, 10 Dec 2013 02:04:22 +0000 Received: by mail-wi0-f180.google.com with SMTP id hn9so4662653wib.1 for ; Mon, 09 Dec 2013 18:04:20 -0800 (PST) In-Reply-To: <1386608281.7812.73.camel@kazak.uk.xensource.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 Cc: xen-devel@lists.xenproject.org, tim@xen.org, stefano.stabellini@citrix.com, patches@linaro.org List-Id: xen-devel@lists.xenproject.org On 12/09/2013 04:58 PM, Ian Campbell wrote: > On Mon, 2013-12-09 at 16:50 +0000, Julien Grall wrote: >> On 12/09/2013 04:06 PM, Ian Campbell wrote: >>> On Mon, 2013-12-09 at 03:34 +0000, Julien Grall wrote: >>>> Signed-off-by: Julien Grall >>>> >>>> --- >>>> Changes in v2: >>>> - Use p2m_lookup as p2m_get_entry was removed >>>> --- >>>> xen/include/asm-arm/p2m.h | 3 ++- >>>> 1 file changed, 2 insertions(+), 1 deletion(-) >>>> >>>> diff --git a/xen/include/asm-arm/p2m.h b/xen/include/asm-arm/p2m.h >>>> index f4bcd7d..b63204d 100644 >>>> --- a/xen/include/asm-arm/p2m.h >>>> +++ b/xen/include/asm-arm/p2m.h >>>> @@ -109,7 +109,8 @@ static inline struct page_info *get_page_from_gfn( >>>> struct domain *d, unsigned long gfn, p2m_type_t *t, p2m_query_t q) >>>> { >>>> struct page_info *page; >>>> - unsigned long mfn = gmfn_to_mfn(d, gfn); >>>> + paddr_t maddr = p2m_lookup(d, pfn_to_paddr(gfn), t); >>>> + unsigned long mfn = maddr >> PAGE_SHIFT; >>> >>> I think this resend happened before I replied to the original a second >>> time, (in <1386583029.13126.13.camel@kazak.uk.xensource.com>) so you >>> hadn't seen it. >> >> Indeed, I will fix it. >> >>> TL;DR: INVALID_MADDR >> PAGE_SHIFT != INVALID_MFN on arm64. >> >> Does it mean that INVALID_MFN can be a valid mfn on arm64? If so, we >> have some place in common code where this constant is used (see >> common/domain.c for instance). > > No, INVALID_MFN is 0xffffffffffffffff which is fine[0]. > > But given INVALID_MADDR of 0xffffffffffffffff, > (INVALID_MADDR>>PAGE_SHIFT) is 0x000fffffffffffff. oh right, I didn't pay attention for that. The patch is now fixed. -- Julien Grall