Messages in this thread Patch in this message | | | Subject | [PATCH 3/3] KVM: AMD SVM: Save and restore the floating point unit state | From | Avi Kivity <> | Date | Wed, 13 Dec 2006 12:45:57 -0000 |
| |
Fixes sf bug 1614113 (segfaults in nbench).
Signed-off-by: Avi Kivity <avi@qumranet.com>
Index: linux-2.6/drivers/kvm/svm.c =================================================================== --- linux-2.6.orig/drivers/kvm/svm.c +++ linux-2.6/drivers/kvm/svm.c @@ -575,6 +575,8 @@ static int svm_create_vcpu(struct kvm_vc memset(vcpu->svm->db_regs, 0, sizeof(vcpu->svm->db_regs)); init_vmcb(vcpu->svm->vmcb); + fx_init(vcpu); + return 0; out2: @@ -1387,6 +1389,10 @@ again: save_db_regs(vcpu->svm->host_db_regs); load_db_regs(vcpu->svm->db_regs); } + + fx_save(vcpu->host_fx_image); + fx_restore(vcpu->guest_fx_image); + asm volatile ( #ifdef CONFIG_X86_64 "push %%rbx; push %%rcx; push %%rdx;" @@ -1496,6 +1502,9 @@ again: #endif : "cc", "memory" ); + fx_save(vcpu->guest_fx_image); + fx_restore(vcpu->host_fx_image); + if ((vcpu->svm->vmcb->save.dr7 & 0xff)) load_db_regs(vcpu->svm->host_db_regs); - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |