aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kvm/booke.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/kvm/booke.c')
-rw-r--r--arch/powerpc/kvm/booke.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c
index af02d9dbd951..7df3f3ae71d9 100644
--- a/arch/powerpc/kvm/booke.c
+++ b/arch/powerpc/kvm/booke.c
@@ -685,8 +685,14 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
685 685
686 case BOOKE_INTERRUPT_PROGRAM: 686 case BOOKE_INTERRUPT_PROGRAM:
687 if (vcpu->arch.shared->msr & (MSR_PR | MSR_GS)) { 687 if (vcpu->arch.shared->msr & (MSR_PR | MSR_GS)) {
688 /* Program traps generated by user-level software must be handled 688 /*
689 * by the guest kernel. */ 689 * Program traps generated by user-level software must
690 * be handled by the guest kernel.
691 *
692 * In GS mode, hypervisor privileged instructions trap
693 * on BOOKE_INTERRUPT_HV_PRIV, not here, so these are
694 * actual program interrupts, handled by the guest.
695 */
690 kvmppc_core_queue_program(vcpu, vcpu->arch.fault_esr); 696 kvmppc_core_queue_program(vcpu, vcpu->arch.fault_esr);
691 r = RESUME_GUEST; 697 r = RESUME_GUEST;
692 kvmppc_account_exit(vcpu, USR_PR_INST); 698 kvmppc_account_exit(vcpu, USR_PR_INST);