summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2012-12-20 04:52:39 +0000
committerAlexander Graf <agraf@suse.de>2013-01-10 13:42:21 +0100
commitb8c649a99d582a6d8afd8457ba6145c624b8a76f (patch)
tree55d877c732c79b6b799d5c04300d11e4a18e86c9
parentf2be655004ddc36f2c5fc5e541d481dcd782ab83 (diff)
downloadop-kernel-dev-b8c649a99d582a6d8afd8457ba6145c624b8a76f.zip
op-kernel-dev-b8c649a99d582a6d8afd8457ba6145c624b8a76f.tar.gz
KVM: PPC: BookE: Allow irq deliveries to inject requests
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>
-rw-r--r--arch/powerpc/kvm/booke.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c
index 69f1140..964f447 100644
--- a/arch/powerpc/kvm/booke.c
+++ b/arch/powerpc/kvm/booke.c
@@ -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);
OpenPOWER on IntegriCloud