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

[Xen-changelog] [xen-unstable] arm: discard boot modules after building domain 0.


  • To: xen-changelog@xxxxxxxxxxxxxxxxxxx
  • From: Xen patchbot-unstable <patchbot@xxxxxxx>
  • Date: Mon, 21 Jan 2013 22:33:18 +0000
  • Delivery-date: Mon, 21 Jan 2013 22:33:46 +0000
  • List-id: "Change log for Mercurial \(receive only\)" <xen-changelog.lists.xen.org>

# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxx>
# Date 1358772030 0
# Node ID 55f10b71880a50f52ad02f4658bc28825af0fb81
# Parent  983813670ef997cdb5ccdc6526248f419366b741
arm: discard boot modules after building domain 0.

Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
Acked-by: Tim Deegan <tim@xxxxxxx>
Committed-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
---


diff -r 983813670ef9 -r 55f10b71880a xen/arch/arm/domain_build.c
--- a/xen/arch/arm/domain_build.c       Mon Jan 21 12:40:29 2013 +0000
+++ b/xen/arch/arm/domain_build.c       Mon Jan 21 12:40:30 2013 +0000
@@ -10,6 +10,7 @@
 #include <xen/device_tree.h>
 #include <xen/libfdt/libfdt.h>
 #include <xen/guest_access.h>
+#include <asm/setup.h>
 
 #include <asm/gic.h>
 #include "kernel.h"
@@ -306,6 +307,8 @@ int construct_dom0(struct domain *d)
     dtb_load(&kinfo);
     kernel_load(&kinfo);
 
+    discard_initial_modules();
+
     clear_bit(_VPF_down, &v->pause_flags);
 
     memset(regs, 0, sizeof(*regs));
diff -r 983813670ef9 -r 55f10b71880a xen/arch/arm/setup.c
--- a/xen/arch/arm/setup.c      Mon Jan 21 12:40:29 2013 +0000
+++ b/xen/arch/arm/setup.c      Mon Jan 21 12:40:30 2013 +0000
@@ -68,6 +68,22 @@ static void __init processor_id(void)
            READ_CP32(ID_ISAR3), READ_CP32(ID_ISAR4), READ_CP32(ID_ISAR5));
 }
 
+void __init discard_initial_modules(void)
+{
+    struct dt_module_info *mi = &early_info.modules;
+    int i;
+
+    for ( i = 1; i <= mi->nr_mods; i++ )
+    {
+        paddr_t s = mi->module[i].start;
+        paddr_t e = s + PAGE_ALIGN(mi->module[i].size);
+
+        init_domheap_pages(s, e);
+    }
+
+    mi->nr_mods = 0;
+}
+
 /*
  * Returns the end address of the highest region in the range s..e
  * with required size and alignment that does not conflict with the
diff -r 983813670ef9 -r 55f10b71880a xen/include/asm-arm/setup.h
--- a/xen/include/asm-arm/setup.h       Mon Jan 21 12:40:29 2013 +0000
+++ b/xen/include/asm-arm/setup.h       Mon Jan 21 12:40:30 2013 +0000
@@ -11,6 +11,8 @@ void arch_get_xen_caps(xen_capabilities_
 
 int construct_dom0(struct domain *d);
 
+void discard_initial_modules(void);
+
 #endif
 /*
  * Local variables:

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