aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/vmx_vmcs.c
diff options
context:
space:
mode:
Diffstat (limited to 'xen/arch/x86/vmx_vmcs.c')
-rw-r--r--xen/arch/x86/vmx_vmcs.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/xen/arch/x86/vmx_vmcs.c b/xen/arch/x86/vmx_vmcs.c
index acaa8f6d5c..9b32d1d502 100644
--- a/xen/arch/x86/vmx_vmcs.c
+++ b/xen/arch/x86/vmx_vmcs.c
@@ -199,7 +199,7 @@ void vmx_do_launch(struct vcpu *v)
__vmwrite(GUEST_CR3, pagetable_get_paddr(v->arch.guest_table));
__vmwrite(HOST_CR3, pagetable_get_paddr(v->arch.monitor_table));
- __vmwrite(HOST_ESP, (unsigned long)get_stack_bottom());
+ __vmwrite(HOST_RSP, (unsigned long)get_stack_bottom());
v->arch.schedule_tail = arch_vmx_do_resume;
}
@@ -308,19 +308,19 @@ construct_init_vmcs_guest(struct cpu_user_regs *regs,
error |= __vmwrite(GUEST_GS_BASE, host_env->ds_base);
error |= __vmwrite(GUEST_IDTR_BASE, host_env->idtr_base);
- error |= __vmwrite(GUEST_ESP, regs->esp);
- error |= __vmwrite(GUEST_EIP, regs->eip);
+ error |= __vmwrite(GUEST_RSP, regs->esp);
+ error |= __vmwrite(GUEST_RIP, regs->eip);
eflags = regs->eflags & ~VMCS_EFLAGS_RESERVED_0; /* clear 0s */
eflags |= VMCS_EFLAGS_RESERVED_1; /* set 1s */
- error |= __vmwrite(GUEST_EFLAGS, eflags);
+ error |= __vmwrite(GUEST_RFLAGS, eflags);
error |= __vmwrite(GUEST_INTERRUPTIBILITY_INFO, 0);
__asm__ __volatile__ ("mov %%dr7, %0\n" : "=r" (dr7));
error |= __vmwrite(GUEST_DR7, dr7);
- error |= __vmwrite(GUEST_VMCS0, 0xffffffff);
- error |= __vmwrite(GUEST_VMCS1, 0xffffffff);
+ error |= __vmwrite(VMCS_LINK_POINTER, 0xffffffff);
+ error |= __vmwrite(VMCS_LINK_POINTER_HIGH, 0xffffffff);
return error;
}
@@ -362,7 +362,7 @@ static inline int construct_vmcs_host(struct host_execution_env *host_env)
__asm__ __volatile__ ("mov %%cr4,%0" : "=r" (crn) : );
host_env->cr4 = crn;
error |= __vmwrite(HOST_CR4, crn);
- error |= __vmwrite(HOST_EIP, (unsigned long) vmx_asm_vmexit_handler);
+ error |= __vmwrite(HOST_RIP, (unsigned long) vmx_asm_vmexit_handler);
return error;
}