summaryrefslogtreecommitdiffstats
path: root/drivers/kvm/vmx.c
diff options
context:
space:
mode:
authorAvi Kivity <avi@qumranet.com>2007-10-16 19:06:15 +0200
committerAvi Kivity <avi@qumranet.com>2007-10-22 12:03:29 +0200
commit78f7826868da8e27d097802139a3fec39f47f3b8 (patch)
tree97f46c95556f261388f5f0475f649df803bfa7e2 /drivers/kvm/vmx.c
parentKVM: x86 emulator: implement 'movnti mem, reg' (diff)
downloadlinux-78f7826868da8e27d097802139a3fec39f47f3b8.tar.xz
linux-78f7826868da8e27d097802139a3fec39f47f3b8.zip
KVM: VMX: Force vm86 mode if setting flags during real mode
When resetting from userspace, we need to handle the flags being cleared even after we are in real mode. Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'drivers/kvm/vmx.c')
-rw-r--r--drivers/kvm/vmx.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/kvm/vmx.c b/drivers/kvm/vmx.c
index f130c01422cf..bb56ae3f89b6 100644
--- a/drivers/kvm/vmx.c
+++ b/drivers/kvm/vmx.c
@@ -523,6 +523,8 @@ static unsigned long vmx_get_rflags(struct kvm_vcpu *vcpu)
static void vmx_set_rflags(struct kvm_vcpu *vcpu, unsigned long rflags)
{
+ if (vcpu->rmode.active)
+ rflags |= IOPL_MASK | X86_EFLAGS_VM;
vmcs_writel(GUEST_RFLAGS, rflags);
}