KVM: Handle spurious acks for PIT interrupts
authorAvi Kivity <avi@qumranet.com>
Sun, 17 Aug 2008 13:03:46 +0000 (16:03 +0300)
committerAvi Kivity <avi@qumranet.com>
Wed, 15 Oct 2008 08:15:19 +0000 (10:15 +0200)
Spurious acks can be generated, for example if the PIC is being reset.
Handle those acks gracefully rather than flooding the log with warnings.

Signed-off-by: Avi Kivity <avi@qumranet.com>
arch/x86/kvm/i8254.c

index 7d04dd3ef857c7cbdafd3ada2861bd5ff8de7448..c842060c6c04155dfe8fad2b1d6885f1ae287372 100644 (file)
@@ -228,7 +228,7 @@ void kvm_pit_ack_irq(struct kvm_irq_ack_notifier *kian)
                                                 irq_ack_notifier);
        spin_lock(&ps->inject_lock);
        if (atomic_dec_return(&ps->pit_timer.pending) < 0)
-               WARN_ON(1);
+               atomic_inc(&ps->pit_timer.pending);
        ps->irq_ack = 1;
        spin_unlock(&ps->inject_lock);
 }