From c633d570b8d8db30075713fd58322a09435a8843 Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Wed, 8 Aug 2012 20:44:20 +0200 Subject: [PATCH] --- yaml --- r: 343457 b: refs/heads/master c: d69c6436443c05a64452054f51a79316297755f4 h: refs/heads/master i: 343455: f68960be316cc0b3511b61cd98ba6ca4ec73756c v: v3 --- [refs] | 2 +- trunk/arch/powerpc/kvm/booke.c | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 4360a4c40055..8b982bdd033b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4ffc6356ec690f77f65b7b78e0047a3fe8316371 +refs/heads/master: d69c6436443c05a64452054f51a79316297755f4 diff --git a/trunk/arch/powerpc/kvm/booke.c b/trunk/arch/powerpc/kvm/booke.c index bcf87fe89179..70a86c0a9d85 100644 --- a/trunk/arch/powerpc/kvm/booke.c +++ b/trunk/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; }