]> xenbits.xensource.com Git - people/julieng/xen-unstable.git/commitdiff
libxc: Initialize vcpu context for 64-bit PVH VCPUs
authorBoris Ostrovsky <boris.ostrovsky@oracle.com>
Thu, 15 Oct 2015 14:44:26 +0000 (10:44 -0400)
committerIan Campbell <ian.campbell@citrix.com>
Thu, 15 Oct 2015 14:52:31 +0000 (15:52 +0100)
Commit 5b921b49f08 ("libxc: rework BSP initialization") forgot to call
xc_vcpu_setcontext() for 64-bit PVH VCPUs.

Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
tools/libxc/xc_dom_x86.c

index 034abe0875392734718c2ae91450681e70b3f05f..4c4182f65f295f8cfc841e5228dd22a6ea41782f 100644 (file)
@@ -810,18 +810,18 @@ static int vcpu_x86_64(struct xc_dom_image *dom)
     DOMPRINTF("%s: cr3: pfn 0x%" PRIpfn " mfn 0x%" PRIpfn "",
               __FUNCTION__, dom->pgtables_seg.pfn, cr3_pfn);
 
-    if ( dom->pvh_enabled )
-        return 0;
-
-    ctxt->user_regs.ds = FLAT_KERNEL_DS_X86_64;
-    ctxt->user_regs.es = FLAT_KERNEL_DS_X86_64;
-    ctxt->user_regs.fs = FLAT_KERNEL_DS_X86_64;
-    ctxt->user_regs.gs = FLAT_KERNEL_DS_X86_64;
-    ctxt->user_regs.ss = FLAT_KERNEL_SS_X86_64;
-    ctxt->user_regs.cs = FLAT_KERNEL_CS_X86_64;
+    if ( !dom->pvh_enabled )
+    {
+        ctxt->user_regs.ds = FLAT_KERNEL_DS_X86_64;
+        ctxt->user_regs.es = FLAT_KERNEL_DS_X86_64;
+        ctxt->user_regs.fs = FLAT_KERNEL_DS_X86_64;
+        ctxt->user_regs.gs = FLAT_KERNEL_DS_X86_64;
+        ctxt->user_regs.ss = FLAT_KERNEL_SS_X86_64;
+        ctxt->user_regs.cs = FLAT_KERNEL_CS_X86_64;
 
-    ctxt->kernel_ss = ctxt->user_regs.ss;
-    ctxt->kernel_sp = ctxt->user_regs.esp;
+        ctxt->kernel_ss = ctxt->user_regs.ss;
+        ctxt->kernel_sp = ctxt->user_regs.esp;
+    }
 
     rc = xc_vcpu_setcontext(dom->xch, dom->guest_domid, 0, &any_ctx);
     if ( rc != 0 )