From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: [PATCH 03/12] arm: handle xenheap which isn't at the start of RAM. Date: Tue, 13 Nov 2012 16:23:15 +0000 Message-ID: <1352823804-28482-3-git-send-email-ian.campbell@citrix.com> References: <1352823779.7491.94.camel@zakaz.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1352823779.7491.94.camel@zakaz.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: xen-devel@lists.xen.org Cc: Ian Campbell List-Id: xen-devel@lists.xenproject.org Signed-off-by: Ian Campbell --- v2: Simplify page_to_virt by using mfn_to_virt & page_to_mfn as suggested by Tim. --- xen/include/asm-arm/mm.h | 12 +++++------- 1 files changed, 5 insertions(+), 7 deletions(-) diff --git a/xen/include/asm-arm/mm.h b/xen/include/asm-arm/mm.h index c0f5b1f..260af35 100644 --- a/xen/include/asm-arm/mm.h +++ b/xen/include/asm-arm/mm.h @@ -214,17 +214,15 @@ static inline struct page_info *virt_to_page(const void *v) ASSERT(va >= XENHEAP_VIRT_START); ASSERT(va < xenheap_virt_end); - return frame_table + ((va - XENHEAP_VIRT_START) >> PAGE_SHIFT); + return frame_table + + ((va - XENHEAP_VIRT_START) >> PAGE_SHIFT) + + xenheap_mfn_start + - frametable_base_mfn; } static inline void *page_to_virt(const struct page_info *pg) { - ASSERT((unsigned long)pg - FRAMETABLE_VIRT_START < frametable_virt_end); - return (void *)(XENHEAP_VIRT_START + - ((unsigned long)pg - FRAMETABLE_VIRT_START) / - (sizeof(*pg) / (sizeof(*pg) & -sizeof(*pg))) * - (PAGE_SIZE / (sizeof(*pg) & -sizeof(*pg)))); - + return mfn_to_virt(page_to_mfn(pg)); } struct domain *page_get_owner_and_reference(struct page_info *page); -- 1.7.9.1