Pārlūkot izejas kodu

KVM: Handle spurious acks for PIT interrupts

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>
Avi Kivity 17 gadi atpakaļ
vecāks
revīzija
dc7404cea3
1 mainītis faili ar 1 papildinājumiem un 1 dzēšanām
  1. 1 1
      arch/x86/kvm/i8254.c

+ 1 - 1
arch/x86/kvm/i8254.c

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