[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [XEN][POWERPC] Boot Module freeing
# HG changeset patch # User Jimi Xenidis <jimix@xxxxxxxxxxxxxx> # Node ID 512078953bbb65fd900c1df680cdc50fb1524147 # Parent 3f87db7cac89c493a28164dac5c651cbfbb4df24 [XEN][POWERPC] Boot Module freeing - Fix bad logic that frees the modules anyway. - Allow for the absence of a Dom0 to continue execution until it's time to load it, useful for debugging bringup code. Signed-off-by: Jimi Xenidis <jimix@xxxxxxxxxxxxxx> Signed-off-by: Hollis Blanchard <hollisb@xxxxxxxxxx> --- xen/arch/powerpc/domain_build.c | 5 +++++ xen/arch/powerpc/setup.c | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff -r 3f87db7cac89 -r 512078953bbb xen/arch/powerpc/domain_build.c --- a/xen/arch/powerpc/domain_build.c Fri Aug 18 05:17:14 2006 -0400 +++ b/xen/arch/powerpc/domain_build.c Fri Aug 18 05:39:01 2006 -0400 @@ -118,13 +118,18 @@ int construct_dom0(struct domain *d, BUG_ON(d->domain_id != 0); BUG_ON(d->vcpu[0] == NULL); + if (image_len == 0) + panic("No Dom0 image supplied\n"); + cpu_init_vcpu(v); memset(&dsi, 0, sizeof(struct domain_setup_info)); dsi.image_addr = image_start; dsi.image_len = image_len; + printk("Trying Dom0 as 64bit ELF\n"); if ((rc = parseelfimage(&dsi)) != 0) { + printk("Trying Dom0 as 32bit ELF\n"); if ((rc = parseelfimage_32(&dsi)) != 0) return rc; am64 = 0; diff -r 3f87db7cac89 -r 512078953bbb xen/arch/powerpc/setup.c --- a/xen/arch/powerpc/setup.c Fri Aug 18 05:17:14 2006 -0400 +++ b/xen/arch/powerpc/setup.c Fri Aug 18 05:39:01 2006 -0400 @@ -326,6 +326,9 @@ static void __init __start_xen(multiboot for (i = 0; i < mbi->mods_count; i++) { u32 s; + if(mod[i].mod_end == mod[i].mod_start) + continue; + s = ALIGN_DOWN(mod[i].mod_start, PAGE_SIZE); if (mod[i].mod_start > (ulong)_start && @@ -337,7 +340,9 @@ static void __init __start_xen(multiboot if (s < freemem) panic("module addresses must assend\n"); - freemem = free_xenheap(freemem, s); + free_xenheap(freemem, s); + freemem = ALIGN_UP(mod[i].mod_end, PAGE_SIZE); + } /* the rest of the xenheap, starting at the end of modules */ _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |