diff options
author | Scott Wood <scottwood@freescale.com> | 2013-04-12 14:08:46 (GMT) |
---|---|---|
committer | Stuart Yoder <stuart.yoder@freescale.com> | 2013-05-02 23:00:45 (GMT) |
commit | 4bc47c67b97c2870a8e2aa620e98908bfcf5e9c4 (patch) | |
tree | 2c6f6ebf1da23a5913d3319a0c6e1429de8bc341 /arch/powerpc/kvm/booke.c | |
parent | cc4d699db3c52e125844cd27a76c7dc6a212f2fb (diff) | |
download | linux-fsl-qoriq-4bc47c67b97c2870a8e2aa620e98908bfcf5e9c4.tar.xz |
kvm/ppc/mpic: in-kernel MPIC emulation
Hook the MPIC code up to the KVM interfaces, add locking, etc.
Signed-off-by: Scott Wood <scottwood@freescale.com>
[agraf: add stub function for kvmppc_mpic_set_epr, non-booke, 64bit]
Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'arch/powerpc/kvm/booke.c')
-rw-r--r-- | arch/powerpc/kvm/booke.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c index 5d9383f..bf40a74 100644 --- a/arch/powerpc/kvm/booke.c +++ b/arch/powerpc/kvm/booke.c @@ -370,7 +370,7 @@ static int kvmppc_booke_irqprio_deliver(struct kvm_vcpu *vcpu, keep_irq = true; } - if ((priority == BOOKE_IRQPRIO_EXTERNAL) && vcpu->arch.epr_enabled) + if ((priority == BOOKE_IRQPRIO_EXTERNAL) && vcpu->arch.epr_flags) update_epr = true; switch (priority) { @@ -451,8 +451,10 @@ static int kvmppc_booke_irqprio_deliver(struct kvm_vcpu *vcpu, set_guest_esr(vcpu, vcpu->arch.queued_esr); if (update_dear == true) set_guest_dear(vcpu, vcpu->arch.queued_dear); - if (update_epr == true) - kvm_make_request(KVM_REQ_EPR_EXIT, vcpu); + if (update_epr == true) { + if (vcpu->arch.epr_flags & KVMPPC_EPR_USER) + kvm_make_request(KVM_REQ_EPR_EXIT, vcpu); + } new_msr &= msr_mask; #if defined(CONFIG_64BIT) |