kvm/ppc/booke: Delay kvmppc_lazy_ee_enable
authorScott Wood <scottwood@freescale.com>
Tue, 11 Jun 2013 16:38:31 +0000 (11:38 -0500)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 19 Jun 2013 10:15:13 +0000 (12:15 +0200)
kwmppc_lazy_ee_enable() should be called as late as possible,
or else we get things like WARN_ON(preemptible()) in enable_kernel_fp()
in configurations where preemptible() works.

Note that book3s_pr already waits until just before __kvmppc_vcpu_run
to call kvmppc_lazy_ee_enable().

Signed-off-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/powerpc/kvm/booke.c

index 5cd7ad0c11764ec59432d945b5d824ea05f6603d..1a1b511897733da58ec1a1b79d6c9a66ffdedea2 100644 (file)
@@ -673,7 +673,6 @@ int kvmppc_vcpu_run(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu)
                ret = s;
                goto out;
        }
-       kvmppc_lazy_ee_enable();
 
        kvm_guest_enter();
 
@@ -699,6 +698,8 @@ int kvmppc_vcpu_run(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu)
        kvmppc_load_guest_fp(vcpu);
 #endif
 
+       kvmppc_lazy_ee_enable();
+
        ret = __kvmppc_vcpu_run(kvm_run, vcpu);
 
        /* No need for kvm_guest_exit. It's done in handle_exit.