diff options
author | Jan Kiszka <jan.kiszka@siemens.com> | 2014-06-29 21:55:53 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2014-07-09 18:09:55 +0200 |
commit | 62baf44cad3bc6b37115cc21e4228fe53d4f3474 (patch) | |
tree | 7b7514f93242b5e0db8c44024dee67a93fd437de /arch/x86/kvm/svm.c | |
parent | 9f6226a762c7ae02f6a23a3d4fc552dafa57ea23 (diff) | |
download | linux-stable-62baf44cad3bc6b37115cc21e4228fe53d4f3474.tar.gz linux-stable-62baf44cad3bc6b37115cc21e4228fe53d4f3474.tar.bz2 linux-stable-62baf44cad3bc6b37115cc21e4228fe53d4f3474.zip |
KVM: nSVM: Do not report CLTS via SVM_EXIT_WRITE_CR0 to L1
CLTS only changes TS which is not monitored by selected CR0
interception. So skip any attempt to translate WRITE_CR0 to
CR0_SEL_WRITE for this instruction.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/x86/kvm/svm.c')
-rw-r--r-- | arch/x86/kvm/svm.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index b5e994ad0135..c79766e1f1e0 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c @@ -4205,7 +4205,8 @@ static int svm_check_intercept(struct kvm_vcpu *vcpu, if (info->intercept == x86_intercept_cr_write) icpt_info.exit_code += info->modrm_reg; - if (icpt_info.exit_code != SVM_EXIT_WRITE_CR0) + if (icpt_info.exit_code != SVM_EXIT_WRITE_CR0 || + info->intercept == x86_intercept_clts) break; intercept = svm->nested.intercept; |