|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] arm: discard boot modules after building domain 0.
# 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
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |