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

[Xen-changelog] [xen-unstable] xen/arm: move setup_mm right after setup_pagetables


  • To: xen-changelog@xxxxxxxxxxxxxxxxxxx
  • From: Xen patchbot-unstable <patchbot@xxxxxxx>
  • Date: Tue, 19 Feb 2013 15:22:21 +0000
  • Delivery-date: Tue, 19 Feb 2013 15:23:20 +0000
  • List-id: "Change log for Mercurial \(receive only\)" <xen-changelog.lists.xen.org>

# HG changeset patch
# User Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
# Date 1360935138 0
# Node ID 5b09dc2856d57e09878f1106000f1d2904ff0c6c
# Parent  6a9549a15108669408123e5e39f52ad09dea1c10
xen/arm: move setup_mm right after setup_pagetables

At the moment we destroy the DTB mappings we have in setup_pagetables
and we restore them only in setup_mm.

Move setup_mm right after setup_pagetables.
This ensures we have a valid DTB mapping while running the subsequent
initialization code.

Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
[ ijc -- s/atag_paddr/fdt_paddr/ ]
Committed-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
---


diff -r 6a9549a15108 -r 5b09dc2856d5 xen/arch/arm/setup.c
--- a/xen/arch/arm/setup.c      Fri Feb 15 13:32:17 2013 +0000
+++ b/xen/arch/arm/setup.c      Fri Feb 15 13:32:18 2013 +0000
@@ -246,11 +246,11 @@ static void __init setup_mm(unsigned lon
     } while ( xenheap_pages > 128<<(20-PAGE_SHIFT) );
 
     if ( ! e )
-        panic("Not not enough space for xenheap\n");
+        early_panic("Not not enough space for xenheap\n");
 
     domheap_pages = heap_pages - xenheap_pages;
 
-    printk("Xen heap: %lu pages  Dom heap: %lu pages\n", xenheap_pages, 
domheap_pages);
+    early_printk("Xen heap: %lu pages  Dom heap: %lu pages\n", xenheap_pages, 
domheap_pages);
 
     setup_xenheap_mappings((e >> PAGE_SHIFT) - xenheap_pages, xenheap_pages);
 
@@ -348,6 +348,7 @@ void __init start_xen(unsigned long boot
     cmdline_parse(device_tree_bootargs(fdt));
 
     setup_pagetables(boot_phys_offset, get_xen_paddr());
+    setup_mm(fdt_paddr, fdt_size);
 
 #ifdef EARLY_UART_ADDRESS
     /* TODO Need to get device tree or command line for UART address */
@@ -365,8 +366,6 @@ void __init start_xen(unsigned long boot
     set_current((struct vcpu *)0xfffff000); /* debug sanity */
     idle_vcpu[0] = current;
 
-    setup_mm(fdt_paddr, fdt_size);
-
     /* Setup Hyp vector base */
     WRITE_CP32((uint32_t) hyp_traps_vector, HVBAR);
     printk("Set hyp vector base to %"PRIx32" (expected %p)\n",
diff -r 6a9549a15108 -r 5b09dc2856d5 xen/common/page_alloc.c
--- a/xen/common/page_alloc.c   Fri Feb 15 13:32:17 2013 +0000
+++ b/xen/common/page_alloc.c   Fri Feb 15 13:32:18 2013 +0000
@@ -182,12 +182,6 @@ void __init init_boot_pages(paddr_t ps, 
         else if ( *p != '\0' )
             break;
 
-        if ( bad_epfn == bad_spfn )
-            printk("Marking page %lx as bad\n", bad_spfn);
-        else
-            printk("Marking pages %lx through %lx as bad\n",
-                   bad_spfn, bad_epfn);
-
         bootmem_region_zap(bad_spfn, bad_epfn+1);
     }
 }

_______________________________________________
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®.