Mailing List Archive

[xen-unstable] [XEN][POWERPC] Boot Module freeing
# HG changeset patch
# User Jimi Xenidis <jimix@watson.ibm.com>
# 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@watson.ibm.com>
Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com>
---
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@lists.xensource.com
http://lists.xensource.com/xen-changelog