summaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/vmx.c
diff options
context:
space:
mode:
authorGleb Natapov2013-04-14 15:07:37 +0200
committerMarcelo Tosatti2013-04-16 23:34:19 +0200
commitf13882d84df31a8567032b6bcbfbdd76ac378513 (patch)
tree5aea267e99be5a2f1a3c828471fbf1af1dd92aea /arch/x86/kvm/vmx.c
parentKVM: nVMX: check vmcs12 for valid activity state (diff)
downloadkernel-qcow2-linux-f13882d84df31a8567032b6bcbfbdd76ac378513.tar.gz
kernel-qcow2-linux-f13882d84df31a8567032b6bcbfbdd76ac378513.tar.xz
kernel-qcow2-linux-f13882d84df31a8567032b6bcbfbdd76ac378513.zip
KVM: VMX: Fix check guest state validity if a guest is in VM86 mode
If guest vcpu is in VM86 mode the vcpu state should be checked as if in real mode. Signed-off-by: Gleb Natapov <gleb@redhat.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'arch/x86/kvm/vmx.c')
-rw-r--r--arch/x86/kvm/vmx.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 8d52bcf371df..c84f0cb921f9 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -3605,7 +3605,7 @@ static bool guest_state_valid(struct kvm_vcpu *vcpu)
return true;
/* real mode guest state checks */
- if (!is_protmode(vcpu)) {
+ if (!is_protmode(vcpu) || (vmx_get_rflags(vcpu) & X86_EFLAGS_VM)) {
if (!rmode_segment_valid(vcpu, VCPU_SREG_CS))
return false;
if (!rmode_segment_valid(vcpu, VCPU_SREG_SS))