aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2012-08-13 01:24:01 +0200
committerAlexander Graf <agraf@suse.de>2012-10-05 23:38:45 +0200
commit3766a4c693358cff33441310413e3776dbbf8ef0 (patch)
tree997f7964fbd5eb0abbf301eff1bb33565ab6be79
parentbd2be6836ee493d41fe42367a2b129aa771185c1 (diff)
KVM: PPC: Move kvm_guest_enter call into generic code
We need to call kvm_guest_enter in booke and book3s, so move its call to generic code. Signed-off-by: Alexander Graf <agraf@suse.de>
-rw-r--r--arch/powerpc/kvm/book3s_pr.c2
-rw-r--r--arch/powerpc/kvm/booke.c2
-rw-r--r--arch/powerpc/kvm/powerpc.c3
3 files changed, 3 insertions, 4 deletions
diff --git a/arch/powerpc/kvm/book3s_pr.c b/arch/powerpc/kvm/book3s_pr.c
index e737db8a5ca..1ff0d6ccc58 100644
--- a/arch/powerpc/kvm/book3s_pr.c
+++ b/arch/powerpc/kvm/book3s_pr.c
@@ -867,8 +867,6 @@ program_interrupt:
run->exit_reason = KVM_EXIT_INTR;
r = -EINTR;
} else {
- /* Going back to guest */
- kvm_guest_enter();
kvmppc_lazy_ee_enable();
}
}
diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c
index 2bd190c488e..5e8dc190913 100644
--- a/arch/powerpc/kvm/booke.c
+++ b/arch/powerpc/kvm/booke.c
@@ -954,8 +954,6 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
r = (-EINTR << 2) | RESUME_HOST | (r & RESUME_FLAG_NV);
kvmppc_account_exit(vcpu, SIGNAL_EXITS);
} else {
- /* Going back to guest */
- kvm_guest_enter();
kvmppc_lazy_ee_enable();
}
}
diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
index 266549979e9..6646574bf93 100644
--- a/arch/powerpc/kvm/powerpc.c
+++ b/arch/powerpc/kvm/powerpc.c
@@ -101,12 +101,15 @@ int kvmppc_prepare_to_enter(struct kvm_vcpu *vcpu)
/* Got an interrupt in between, try again */
local_irq_enable();
local_irq_disable();
+ kvm_guest_exit();
continue;
}
trace_hardirqs_on();
#endif
+ kvm_guest_enter();
+
/* Going into guest context! Yay! */
vcpu->mode = IN_GUEST_MODE;
smp_wmb();