aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/vmx.c
diff options
context:
space:
mode:
authorNadav Amit <namit@cs.technion.ac.il>2014-05-07 15:32:49 +0300
committerPaolo Bonzini <pbonzini@redhat.com>2014-05-07 17:24:59 +0200
commita4ab9d0cf1ef0bf521bb69099aa464f38c71393c (patch)
tree2e5c799010d8be702afcc0b78925c51581bcb55c /arch/x86/kvm/vmx.c
parentKVM: nVMX: move vmclear and vmptrld pre-checks to nested_vmx_check_vmptr (diff)
downloadlinux-dev-a4ab9d0cf1ef0bf521bb69099aa464f38c71393c.tar.xz
linux-dev-a4ab9d0cf1ef0bf521bb69099aa464f38c71393c.zip
KVM: vmx: handle_dr does not handle RSP correctly
The RSP register is not automatically cached, causing mov DR instruction with RSP to fail. Instead the regular register accessing interface should be used. Signed-off-by: Nadav Amit <namit@cs.technion.ac.il> Signed-off-by: Paolo Bonzini <pbonzini@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 a5fd47e4abfc..61e818d80732 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -5143,7 +5143,7 @@ static int handle_dr(struct kvm_vcpu *vcpu)
return 1;
kvm_register_write(vcpu, reg, val);
} else
- if (kvm_set_dr(vcpu, dr, vcpu->arch.regs[reg]))
+ if (kvm_set_dr(vcpu, dr, kvm_register_read(vcpu, reg)))
return 1;
skip_emulated_instruction(vcpu);