[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [IA64][LIBXC] prep for fixes
# HG changeset patch # User awilliam@xxxxxxxxxxx # Node ID 27c2e9aa83e9ee41041bdb86d2cb4e8e28143379 # Parent e5e6893ec6997513fc2920a2efc3bfd6ed6cd6b0 [IA64][LIBXC] prep for fixes Groundwork for real fixes to follow Signed-off-by: Alex Williamson <alex.williamson@xxxxxx> --- tools/libxc/ia64/xc_ia64_hvm_build.c | 29 +++++------------------------ tools/libxc/xc_linux_build.c | 3 +++ 2 files changed, 8 insertions(+), 24 deletions(-) diff -r e5e6893ec699 -r 27c2e9aa83e9 tools/libxc/ia64/xc_ia64_hvm_build.c --- a/tools/libxc/ia64/xc_ia64_hvm_build.c Mon Dec 04 08:44:57 2006 -0700 +++ b/tools/libxc/ia64/xc_ia64_hvm_build.c Tue Dec 05 09:09:44 2006 -0700 @@ -581,8 +581,7 @@ add_pal_hob(void* hob_buf) */ static int setup_guest(int xc_handle, uint32_t dom, unsigned long memsize, - char *image, unsigned long image_size, uint32_t vcpus, - unsigned int store_evtchn, unsigned long *store_mfn) + char *image, unsigned long image_size, vcpu_guest_context_t *ctxt) { xen_pfn_t *pfn_list; shared_iopage_t *sp; @@ -669,11 +668,6 @@ setup_guest(int xc_handle, uint32_t dom, if (xc_domctl(xc_handle, &domctl)) goto error_out; - if (xc_domain_translate_gpfn_list(xc_handle, dom, nr_pages, - pfn_list, pfn_list)) { - PERROR("Could not translate addresses of HVM guest.\n"); - goto error_out; - } // Load guest firmware if (xc_ia64_copy_to_domain_pages(xc_handle, dom, image, @@ -692,10 +686,8 @@ setup_guest(int xc_handle, uint32_t dom, xc_set_hvm_param(xc_handle, dom, HVM_PARAM_STORE_PFN, STORE_PAGE_START>>PAGE_SHIFT); - xc_set_hvm_param(xc_handle, dom, HVM_PARAM_STORE_EVTCHN, store_evtchn); // Retrieve special pages like io, xenstore, etc. - *store_mfn = pfn_list[nr_pages - 2]; sp = (shared_iopage_t *)xc_map_foreign_range(xc_handle, dom, PAGE_SIZE, PROT_READ | PROT_WRITE, pfn_list[nr_pages - 3]); @@ -717,12 +709,9 @@ error_out: } int -xc_hvm_build(int xc_handle, uint32_t domid, int memsize, - const char *image_name, unsigned int vcpus, unsigned int pae, - unsigned int acpi, unsigned int store_evtchn, - unsigned long *store_mfn) -{ - struct xen_domctl launch_domctl, domctl; +xc_hvm_build(int xc_handle, uint32_t domid, int memsize, const char *image_name) +{ + struct xen_domctl launch_domctl; int rc; vcpu_guest_context_t st_ctxt, *ctxt = &st_ctxt; char *image = NULL; @@ -748,18 +737,10 @@ xc_hvm_build(int xc_handle, uint32_t dom return 1; } - domctl.cmd = XEN_DOMCTL_getdomaininfo; - domctl.domain = (domid_t)domid; - if (do_domctl(xc_handle, &domctl) < 0 || - (uint16_t)domctl.domain != domid) { - PERROR("Could not get info on domain"); - goto error_out; - } - memset(ctxt, 0, sizeof(*ctxt)); if (setup_guest(xc_handle, domid, (unsigned long)memsize, image, - image_size, vcpus, store_evtchn, store_mfn) < 0) { + image_size, ctxt) < 0) { ERROR("Error constructing guest OS"); goto error_out; } diff -r e5e6893ec699 -r 27c2e9aa83e9 tools/libxc/xc_linux_build.c --- a/tools/libxc/xc_linux_build.c Mon Dec 04 08:44:57 2006 -0700 +++ b/tools/libxc/xc_linux_build.c Tue Dec 05 09:09:44 2006 -0700 @@ -565,6 +565,9 @@ static int setup_guest(int xc_handle, start_info = xc_map_foreign_range( xc_handle, dom, PAGE_SIZE, PROT_READ|PROT_WRITE, page_array[nr_pages - 3]); + if ( start_info == NULL ) + goto error_out; + memset(start_info, 0, sizeof(*start_info)); rc = xc_version(xc_handle, XENVER_version, NULL); sprintf(start_info->magic, "xen-%i.%i-ia64", rc >> 16, rc & (0xFFFF)); _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |