From: Keir Fraser Date: Mon, 22 Oct 2007 13:21:13 +0000 (+0100) Subject: ia64: Fix ia64 PV domain creation with new vhpt-size parameter. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~14847^2~2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=e38bd7ef8e10d417d5543b6436ca60fe59e44a7d;p=xen.git ia64: Fix ia64 PV domain creation with new vhpt-size parameter. Signed-off-by: Kouya Shimura --- diff --git a/tools/libxc/xc_dom.h b/tools/libxc/xc_dom.h index 2a42b874fe..30111c98e2 100644 --- a/tools/libxc/xc_dom.h +++ b/tools/libxc/xc_dom.h @@ -95,6 +95,7 @@ struct xc_dom_image { int guest_xc; domid_t guest_domid; + int8_t vhpt_size_log2; /* for IA64 */ int shadow_enabled; int xen_version; diff --git a/tools/libxc/xc_dom_ia64.c b/tools/libxc/xc_dom_ia64.c index 1211eead52..fa2c9e61f7 100644 --- a/tools/libxc/xc_dom_ia64.c +++ b/tools/libxc/xc_dom_ia64.c @@ -260,7 +260,7 @@ int arch_setup_bootearly(struct xc_dom_image *dom) domctl.u.arch_setup.bp = (dom->start_info_pfn << PAGE_SHIFT) + sizeof(start_info_t); domctl.u.arch_setup.maxmem = dom->total_pages << PAGE_SHIFT; - domctl.u.arch_setup.vhpt_size_log2 = dom->flags; + domctl.u.arch_setup.vhpt_size_log2 = dom->vhpt_size_log2; rc = do_domctl(dom->guest_xc, &domctl); return rc; } diff --git a/tools/python/xen/lowlevel/xc/xc.c b/tools/python/xen/lowlevel/xc/xc.c index 2cf5c5bb73..4a2a64715e 100644 --- a/tools/python/xen/lowlevel/xc/xc.c +++ b/tools/python/xen/lowlevel/xc/xc.c @@ -413,6 +413,7 @@ static PyObject *pyxc_linux_build(XcObject *self, char *image, *ramdisk = NULL, *cmdline = "", *features = NULL; int flags = 0; int store_evtchn, console_evtchn; + int vhpt = 0; unsigned int mem_mb; unsigned long store_mfn = 0; unsigned long console_mfn = 0; @@ -425,20 +426,23 @@ static PyObject *pyxc_linux_build(XcObject *self, "console_evtchn", "image", /* optional */ "ramdisk", "cmdline", "flags", - "features", NULL }; + "features", "vhpt", NULL }; - if ( !PyArg_ParseTupleAndKeywords(args, kwds, "iiiis|ssis", kwd_list, + if ( !PyArg_ParseTupleAndKeywords(args, kwds, "iiiis|ssisi", kwd_list, &domid, &store_evtchn, &mem_mb, &console_evtchn, &image, /* optional */ &ramdisk, &cmdline, &flags, - &features) ) + &features, &vhpt) ) return NULL; xc_dom_loginit(); if (!(dom = xc_dom_allocate(cmdline, features))) return pyxc_error_to_exception(); + /* for IA64 */ + dom->vhpt_size_log2 = vhpt; + if ( xc_dom_linux_build(self->xc_handle, dom, domid, mem_mb, image, ramdisk, flags, store_evtchn, &store_mfn, console_evtchn, &console_mfn) != 0 ) { diff --git a/tools/python/xen/xend/image.py b/tools/python/xen/xend/image.py index 0cd8fa4a07..16e842bddd 100644 --- a/tools/python/xen/xend/image.py +++ b/tools/python/xen/xend/image.py @@ -198,6 +198,7 @@ class LinuxImageHandler(ImageHandler): ostype = "linux" flags = 0 + vhpt = 0 def buildDomain(self): store_evtchn = self.vm.getStorePort() @@ -225,7 +226,8 @@ class LinuxImageHandler(ImageHandler): cmdline = self.cmdline, ramdisk = self.ramdisk, features = self.vm.getFeatures(), - flags = self.flags) + flags = self.flags, + vhpt = self.vhpt) class PPC_LinuxImageHandler(LinuxImageHandler): @@ -533,9 +535,6 @@ class IA64_Linux_ImageHandler(LinuxImageHandler): LinuxImageHandler.configure(self, vmConfig) self.vhpt = int(vmConfig['platform'].get('vhpt', 0)) - def buildDomain(self): - self.flags = self.vhpt - return LinuxImageHandler.buildDomain(self) class X86_HVM_ImageHandler(HVMImageHandler):