summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2012-08-08 20:44:20 +0200
committerAlexander Graf <agraf@suse.de>2012-10-05 23:38:41 +0200
commitd69c6436443c05a64452054f51a79316297755f4 (patch)
tree34e6464340857f8452944e35d441afad11958ac9 /arch
parent4ffc6356ec690f77f65b7b78e0047a3fe8316371 (diff)
downloadop-kernel-dev-d69c6436443c05a64452054f51a79316297755f4.zip
op-kernel-dev-d69c6436443c05a64452054f51a79316297755f4.tar.gz
KVM: PPC: BookE: Add support for vcpu->mode
Generic KVM code might want to know whether we are inside guest context or outside. It also wants to be able to push us out of guest context. Add support to the BookE code for the generic vcpu->mode field that describes the above states. Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/powerpc/kvm/booke.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c
index bcf87fe..70a86c0 100644
--- a/arch/powerpc/kvm/booke.c
+++ b/arch/powerpc/kvm/booke.c
@@ -501,6 +501,15 @@ static int kvmppc_prepare_to_enter(struct kvm_vcpu *vcpu)
continue;
}
+ if (vcpu->mode == EXITING_GUEST_MODE) {
+ r = 1;
+ break;
+ }
+
+ /* Going into guest context! Yay! */
+ vcpu->mode = IN_GUEST_MODE;
+ smp_wmb();
+
break;
}
@@ -572,6 +581,8 @@ int kvmppc_vcpu_run(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu)
kvm_guest_exit();
out:
+ vcpu->mode = OUTSIDE_GUEST_MODE;
+ smp_wmb();
local_irq_enable();
return ret;
}
OpenPOWER on IntegriCloud