|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 03/12] arm: handle xenheap which isn't at the start of RAM.
Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
---
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
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |