[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen master] Revert "xen/arm: Allocate memory for dom0 from the bottom with the 1:1 Workaround"



commit 34f21f9d2b1f806fc15e66d6dff9138ec45f5565
Author:     Ian Campbell <ian.campbell@xxxxxxxxxx>
AuthorDate: Fri Apr 4 13:56:59 2014 +0100
Commit:     Ian Campbell <ian.campbell@xxxxxxxxxx>
CommitDate: Wed Apr 16 16:23:15 2014 +0100

    Revert "xen/arm: Allocate memory for dom0 from the bottom with the 1:1 
Workaround"
    
    This reverts commit 6c21cb36e263de2db8716b477157a5b6cd531e1e.
    
    The Linux = issue which this works around was fixed in v3.13 via 
f52bb722547f
    "ARM: mm: Correct virt_to_phys patching for 64 bit physical addresses".
    
    This is the second attempt to revert this. Now that we have fixed
    allocate_memory_11 to allocate accessible memory on 32-bit this is safe to 
do.
    This is not quite a straight revert since we need to ensure that for 32-bit
    domain 0 we do not allocate dom0's memory above 4GB where the domain cannot
    access it without paging (which is disabled at start of day) and LPAE (which
    the kernel may not support) enabled.
    
    Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
    Acked-by: Julien Grall <julien.grall@xxxxxxxxxx>
    [ ijc -- dropped debug code ]
---
 xen/arch/arm/domain_build.c |   14 +++++---------
 1 files changed, 5 insertions(+), 9 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 083bf2d..df34c6d 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -69,19 +69,15 @@ static void allocate_memory_11(struct domain *d, struct 
kernel_info *kinfo)
 {
     paddr_t start;
     paddr_t size;
-    struct page_info *pg = NULL;
+    struct page_info *pg;
     unsigned int order = get_order_from_bytes(dom0_mem);
     int res;
     paddr_t spfn;
-    unsigned int bits;
-
-    for ( bits = PAGE_SHIFT + 1; bits < PADDR_BITS; bits++ )
-    {
-        pg = alloc_domheap_pages(d, order, MEMF_bits(bits));
-        if ( pg != NULL )
-            break;
-    }
 
+    if ( is_32bit_domain(d) )
+        pg = alloc_domheap_pages(d, order, MEMF_bits(32));
+    else
+        pg = alloc_domheap_pages(d, order, 0);
     if ( !pg )
         panic("Failed to allocate contiguous memory for dom0");
 
--
generated by git-patchbot for /home/xen/git/xen.git#master

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.