]> Pileus Git - ~andy/linux/blobdiff - arch/powerpc/kvm/booke.c
KVM: PPC: Tell guest about pending interrupts
[~andy/linux] / arch / powerpc / kvm / booke.c
index 104d0ee8c8aa6302add6770a82f8d0a1175ed9c0..c604277011a64cda2c4a26e1638dadfd5f30976e 100644 (file)
@@ -224,6 +224,7 @@ static int kvmppc_booke_irqprio_deliver(struct kvm_vcpu *vcpu,
 void kvmppc_core_deliver_interrupts(struct kvm_vcpu *vcpu)
 {
        unsigned long *pending = &vcpu->arch.pending_exceptions;
+       unsigned long old_pending = vcpu->arch.pending_exceptions;
        unsigned int priority;
 
        priority = __ffs(*pending);
@@ -235,6 +236,12 @@ void kvmppc_core_deliver_interrupts(struct kvm_vcpu *vcpu)
                                         BITS_PER_BYTE * sizeof(*pending),
                                         priority + 1);
        }
+
+       /* Tell the guest about our interrupt status */
+       if (*pending)
+               vcpu->arch.shared->int_pending = 1;
+       else if (old_pending)
+               vcpu->arch.shared->int_pending = 0;
 }
 
 /**