From: Amit Shah Date: Sun, 2 Dec 2007 11:18:44 +0000 (+0200) Subject: KVM: SVM: Fix FPU leak while emulating clts X-Git-Tag: v2.6.23.10~38 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c5c1366253addd6691d620f18f7e660c4e11b08d;p=thirdparty%2Fkernel%2Fstable.git KVM: SVM: Fix FPU leak while emulating clts patch 404fb881b82cf0cf6981832f8d31a7484e4dee81 in mainline. The clts code didn't use set_cr0 properly, so our lazy FPU processing wasn't being done by the clts instruction at all. (this isn't called on Intel as the hardware does the decode for us) Signed-off-by: Amit Shah Signed-off-by: Avi Kivity Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/kvm/kvm_main.c b/drivers/kvm/kvm_main.c index b514dfbb6758a..504e81dcbf900 100644 --- a/drivers/kvm/kvm_main.c +++ b/drivers/kvm/kvm_main.c @@ -1163,10 +1163,7 @@ int emulate_invlpg(struct kvm_vcpu *vcpu, gva_t address) int emulate_clts(struct kvm_vcpu *vcpu) { - unsigned long cr0; - - cr0 = vcpu->cr0 & ~CR0_TS_MASK; - kvm_arch_ops->set_cr0(vcpu, cr0); + kvm_arch_ops->set_cr0(vcpu, vcpu->cr0 & ~X86_CR0_TS); return X86EMUL_CONTINUE; }