aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2012-02-20 06:33:22 -0500
committerAvi Kivity <avi@redhat.com>2012-04-08 05:55:19 -0400
commit0268597c811ccf55e0bda20907c1a9e6001365cf (patch)
treeed38fdd7caba11212817214906f2c25f8fc80c1f /arch
parentc35c9d84cf141ebf05e2e481c0faccedc4f8f7ff (diff)
KVM: PPC: booke: add GS documentation for program interrupt
The comment for program interrupts triggered when using bookehv was misleading. Update it to mention why MSR_GS indicates that we have to inject an interrupt into the guest again, not emulate it. Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch')
-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);