aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kvm
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2010-03-24 16:48:22 -0400
committerAvi Kivity <avi@redhat.com>2010-05-17 05:16:57 -0400
commitc2453693d41f31dae1b4d39b2d59d9a9c6dcb837 (patch)
treedb1342e9e9517990e57b38548037540292c2d364 /arch/powerpc/kvm
parent8963221d7d7244cc828dfca5649404c747599b3e (diff)
KVM: PPC: Don't reload FPU with invalid values
When the guest activates the FPU, we load it up. That's fine when it wasn't activated before on the host, but if it was we end up reloading FPU values from last time the FPU was deactivated on the host without writing the proper values back to the vcpu struct. This patch checks if the FPU is enabled already and if so just doesn't bother activating it, making FPU operations survive guest context switches. Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/powerpc/kvm')
-rw-r--r--arch/powerpc/kvm/book3s.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/powerpc/kvm/book3s.c b/arch/powerpc/kvm/book3s.c
index 358d5f78311a..6f409c98205c 100644
--- a/arch/powerpc/kvm/book3s.c
+++ b/arch/powerpc/kvm/book3s.c
@@ -702,6 +702,11 @@ static int kvmppc_handle_ext(struct kvm_vcpu *vcpu, unsigned int exit_nr,
702 return RESUME_GUEST; 702 return RESUME_GUEST;
703 } 703 }
704 704
705 /* We already own the ext */
706 if (vcpu->arch.guest_owned_ext & msr) {
707 return RESUME_GUEST;
708 }
709
705#ifdef DEBUG_EXT 710#ifdef DEBUG_EXT
706 printk(KERN_INFO "Loading up ext 0x%lx\n", msr); 711 printk(KERN_INFO "Loading up ext 0x%lx\n", msr);
707#endif 712#endif