diff options
author | Scott Wood <scottwood@freescale.com> | 2013-04-12 10:08:46 -0400 |
---|---|---|
committer | Alexander Graf <agraf@suse.de> | 2013-04-26 14:27:23 -0400 |
commit | 5df554ad5b7522ea62b0ff9d5be35183494efc21 (patch) | |
tree | b00f569c1d7a684d3455ad59f52c7b5aa7ac04e7 /arch/powerpc/kvm/booke.c | |
parent | f0f5c481a91c56f1ee5b3809bf3943115143b1a7 (diff) |
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 02756537cd90..4da11ed48c59 100644 --- a/arch/powerpc/kvm/booke.c +++ b/arch/powerpc/kvm/booke.c | |||
@@ -346,7 +346,7 @@ static int kvmppc_booke_irqprio_deliver(struct kvm_vcpu *vcpu, | |||
346 | keep_irq = true; | 346 | keep_irq = true; |
347 | } | 347 | } |
348 | 348 | ||
349 | if ((priority == BOOKE_IRQPRIO_EXTERNAL) && vcpu->arch.epr_enabled) | 349 | if ((priority == BOOKE_IRQPRIO_EXTERNAL) && vcpu->arch.epr_flags) |
350 | update_epr = true; | 350 | update_epr = true; |
351 | 351 | ||
352 | switch (priority) { | 352 | switch (priority) { |
@@ -427,8 +427,10 @@ static int kvmppc_booke_irqprio_deliver(struct kvm_vcpu *vcpu, | |||
427 | set_guest_esr(vcpu, vcpu->arch.queued_esr); | 427 | set_guest_esr(vcpu, vcpu->arch.queued_esr); |
428 | if (update_dear == true) | 428 | if (update_dear == true) |
429 | set_guest_dear(vcpu, vcpu->arch.queued_dear); | 429 | set_guest_dear(vcpu, vcpu->arch.queued_dear); |
430 | if (update_epr == true) | 430 | if (update_epr == true) { |
431 | kvm_make_request(KVM_REQ_EPR_EXIT, vcpu); | 431 | if (vcpu->arch.epr_flags & KVMPPC_EPR_USER) |
432 | kvm_make_request(KVM_REQ_EPR_EXIT, vcpu); | ||
433 | } | ||
432 | 434 | ||
433 | new_msr &= msr_mask; | 435 | new_msr &= msr_mask; |
434 | #if defined(CONFIG_64BIT) | 436 | #if defined(CONFIG_64BIT) |