summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorJoerg Roedel <joerg.roedel@amd.com>2011-02-09 18:29:39 +0100
committerAvi Kivity <avi@redhat.com>2011-02-22 16:01:44 +0200
commit2c46d2aec054e61a33feac8c3992218eabdcc22a (patch)
tree3e8fbc0d589b5c2d2cdfe9d96749f1268418c61f /arch
parenta0dc00b430b7f515904aa6dd62296b577e94c7aa (diff)
downloadlinux-3.10-2c46d2aec054e61a33feac8c3992218eabdcc22a.tar.gz
linux-3.10-2c46d2aec054e61a33feac8c3992218eabdcc22a.tar.bz2
linux-3.10-2c46d2aec054e61a33feac8c3992218eabdcc22a.zip
KVM: SVM: Advance instruction pointer in dr_intercept
In the dr_intercept function a new cpu-feature called decode-assists is implemented and used when available. This code-path does not advance the guest-rip causing the guest to dead-loop over mov-dr instructions. This is fixed by this patch. Signed-off-by: Joerg Roedel <joerg.roedel@amd.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kvm/svm.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index 54ce246a383..63fec1531e8 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -2777,6 +2777,8 @@ static int dr_interception(struct vcpu_svm *svm)
kvm_register_write(&svm->vcpu, reg, val);
}
+ skip_emulated_instruction(&svm->vcpu);
+
return 1;
}