# HG changeset patch
# User Jimi Xenidis <jimix@xxxxxxxxxxxxxx>
# Node ID 239f82b1208e2c41fa815709ccf9ebcce24104f9
# Parent f623f56678244308cd489c40bf7e940b285bf8cd
[ppc] struct domain_setup_info should be 64bit neutral
This patch was sent upstream.
Need to allow a 32 bit loader to load a 64bit image.
Also allows for a missing device tree, because it could be embedded.
Signed-off-by: Jimi Xenidis <jimix@xxxxxxxxxxxxxx>
---
tools/libxc/xc_ppc_linux_build.c | 16 ++++++++--------
tools/libxc/xg_private.h | 18 +++++++++---------
2 files changed, 17 insertions(+), 17 deletions(-)
diff -r f623f5667824 -r 239f82b1208e tools/libxc/xc_ppc_linux_build.c
--- a/tools/libxc/xc_ppc_linux_build.c Wed Jun 28 15:16:48 2006 -0400
+++ b/tools/libxc/xc_ppc_linux_build.c Wed Jun 28 15:18:54 2006 -0400
@@ -257,11 +257,11 @@ static int load_kernel(
(load_funcs.loadimage)(kernel_img, kernel_size, xc_handle, domid,
page_array, dsi);
- VERBOSE(printf(" v_start %lx\n", dsi->v_start));
- VERBOSE(printf(" v_end %lx\n", dsi->v_end));
- VERBOSE(printf(" v_kernstart %lx\n", dsi->v_kernstart));
- VERBOSE(printf(" v_kernend %lx\n", dsi->v_kernend));
- VERBOSE(printf(" v_kernentry %lx\n", dsi->v_kernentry));
+ VERBOSE(printf(" v_start %llx\n", dsi->v_start));
+ VERBOSE(printf(" v_end %llx\n", dsi->v_end));
+ VERBOSE(printf(" v_kernstart %llx\n", dsi->v_kernstart));
+ VERBOSE(printf(" v_kernend %llx\n", dsi->v_kernend));
+ VERBOSE(printf(" v_kernentry %llx\n", dsi->v_kernentry));
out:
free(kernel_img);
@@ -376,7 +376,8 @@ int xc_linux_build(int xc_handle,
}
kern_addr = 0;
- if (load_initrd(xc_handle, domid, page_array, initrd_name, &initrd_base,
+ if (initrd_name && initrd_name[0] != '\0' &&
+ load_initrd(xc_handle, domid, page_array, initrd_name, &initrd_base,
&initrd_len)) {
rc = -1;
goto out;
@@ -385,8 +386,7 @@ int xc_linux_build(int xc_handle,
dtb_addr = (16 << 20);
if (load_dtb(xc_handle, domid, "DomU.dtb", dtb_addr, &dsi, page_array)) {
- rc = -1;
- goto out;
+ dtb_addr = 0;
}
si_addr = create_start_info(&si, store_evtchn, console_evtchn);
diff -r f623f5667824 -r 239f82b1208e tools/libxc/xg_private.h
--- a/tools/libxc/xg_private.h Wed Jun 28 15:16:48 2006 -0400
+++ b/tools/libxc/xg_private.h Wed Jun 28 15:18:54 2006 -0400
@@ -132,13 +132,13 @@ typedef unsigned long l4_pgentry_t;
struct domain_setup_info
{
- unsigned long v_start;
- unsigned long v_end;
- unsigned long v_kernstart;
- unsigned long v_kernend;
- unsigned long v_kernentry;
-
- unsigned long elf_paddr_offset;
+ uint64_t v_start;
+ uint64_t v_end;
+ uint64_t v_kernstart;
+ uint64_t v_kernend;
+ uint64_t v_kernentry;
+
+ uint64_t elf_paddr_offset;
#define PAEKERN_no 0
#define PAEKERN_yes 1
@@ -146,8 +146,8 @@ struct domain_setup_info
unsigned int pae_kernel;
unsigned int load_symtab;
- unsigned long symtab_addr;
- unsigned long symtab_len;
+ unsigned int symtab_addr;
+ unsigned int symtab_len;
/* __xen_guest info string for convenient loader parsing. */
char *xen_guest_string;
_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ppc-devel
|