public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] SVM: fix lazy FPU switching
@ 2008-01-17 14:39 Joerg Roedel
  0 siblings, 0 replies; 3+ messages in thread
From: Joerg Roedel @ 2008-01-17 14:39 UTC (permalink / raw)
  To: Avi Kivity; +Cc: kvm-devel, Joerg Roedel, Markus Rechberger

If the guest writes to cr0 and leaves the TS flag at 0 while vcpu->fpu_active
is also 0, the TS flag in the guests cr0 gets lost. This leads to corrupt FPU
state an causes Windows Vista 64bit to crash very soon after boot. This patch
fixes this bug.

Signed-off-by: Joerg Roedel <joerg.roedel-5C7GfCeVMHo@public.gmane.org>
Signed-off-by: Markus Rechberger <markus.rechberger-5C7GfCeVMHo@public.gmane.org>
---
 arch/x86/kvm/svm.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index 2da9e11..7bdbe16 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -792,6 +792,8 @@ static void svm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0)
 	vcpu->arch.cr0 = cr0;
 	cr0 |= X86_CR0_PG | X86_CR0_WP;
 	cr0 &= ~(X86_CR0_CD | X86_CR0_NW);
+	if (!vcpu->fpu_active)
+		cr0 |= X86_CR0_TS;
 	svm->vmcb->save.cr0 = cr0;
 }
 
-- 
1.5.3.7




-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH] SVM: fix lazy FPU switching
@ 2008-01-21 12:09 Joerg Roedel
       [not found] ` <1200917373-6928-1-git-send-email-joerg.roedel-5C7GfCeVMHo@public.gmane.org>
  0 siblings, 1 reply; 3+ messages in thread
From: Joerg Roedel @ 2008-01-21 12:09 UTC (permalink / raw)
  To: Avi Kivity; +Cc: kvm-devel, Joerg Roedel, Markus Rechberger

If the guest writes to cr0 and leaves the TS flag at 0 while vcpu->fpu_active
is also 0, the TS flag in the guests cr0 gets lost. This leads to corrupt FPU
state an causes Windows Vista 64bit to crash very soon after boot. This patch
fixes this bug.

Signed-off-by: Joerg Roedel <joerg.roedel-5C7GfCeVMHo@public.gmane.org>
Signed-off-by: Markus Rechberger <markus.rechberger-5C7GfCeVMHo@public.gmane.org>
---
 arch/x86/kvm/svm.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index 2da9e11..7bdbe16 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -792,6 +792,8 @@ static void svm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0)
 	vcpu->arch.cr0 = cr0;
 	cr0 |= X86_CR0_PG | X86_CR0_WP;
 	cr0 &= ~(X86_CR0_CD | X86_CR0_NW);
+	if (!vcpu->fpu_active)
+		cr0 |= X86_CR0_TS;
 	svm->vmcb->save.cr0 = cr0;
 }
 
-- 
1.5.3.7




-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] SVM: fix lazy FPU switching
       [not found] ` <1200917373-6928-1-git-send-email-joerg.roedel-5C7GfCeVMHo@public.gmane.org>
@ 2008-01-21 17:42   ` Avi Kivity
  0 siblings, 0 replies; 3+ messages in thread
From: Avi Kivity @ 2008-01-21 17:42 UTC (permalink / raw)
  To: Joerg Roedel; +Cc: kvm-devel, Markus Rechberger

Joerg Roedel wrote:
> If the guest writes to cr0 and leaves the TS flag at 0 while vcpu->fpu_active
> is also 0, the TS flag in the guests cr0 gets lost. This leads to corrupt FPU
> state an causes Windows Vista 64bit to crash very soon after boot. This patch
> fixes this bug.
>
>   

Applied, thanks.

-- 
error compiling committee.c: too many arguments to function


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-01-21 17:42 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-01-21 12:09 [PATCH] SVM: fix lazy FPU switching Joerg Roedel
     [not found] ` <1200917373-6928-1-git-send-email-joerg.roedel-5C7GfCeVMHo@public.gmane.org>
2008-01-21 17:42   ` Avi Kivity
  -- strict thread matches above, loose matches on Subject: below --
2008-01-17 14:39 Joerg Roedel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox