[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 |