KVM: PPC: BookE: Allow irq deliveries to inject requests
authorAlexander Graf <agraf@suse.de>
Thu, 20 Dec 2012 04:52:39 +0000 (04:52 +0000)
committerAlexander Graf <agraf@suse.de>
Thu, 10 Jan 2013 12:42:21 +0000 (13:42 +0100)
When injecting an interrupt into guest context, we usually don't need
to check for requests anymore. At least not until today.

With the introduction of EPR, we will have to create a request when the
guest has successfully accepted an external interrupt though.

So we need to prepare the interrupt delivery to abort guest entry
gracefully. Otherwise we'd delay the EPR request.

Signed-off-by: Alexander Graf <agraf@suse.de>
arch/powerpc/kvm/booke.c

index 69f1140157807c7df83c33541975e799563ed865..964f4475f55ceaaf08b5d94e352830b6b000269a 100644 (file)
@@ -581,6 +581,11 @@ int kvmppc_core_prepare_to_enter(struct kvm_vcpu *vcpu)
 
        kvmppc_core_check_exceptions(vcpu);
 
+       if (vcpu->requests) {
+               /* Exception delivery raised request; start over */
+               return 1;
+       }
+
        if (vcpu->arch.shared->msr & MSR_WE) {
                local_irq_enable();
                kvm_vcpu_block(vcpu);