KVM: ioapic: fix lost interrupt when changing a device's irq
authorAvi Kivity <avi@qumranet.com>
Tue, 17 Jun 2008 22:36:36 +0000 (15:36 -0700)
committerAvi Kivity <avi@qumranet.com>
Tue, 24 Jun 2008 09:23:55 +0000 (12:23 +0300)
commit4fa6b9c5dc4134bdeac341d731a87783cc11ca10
tree3542acc44ec41a0c9f79fbda570f64d315bdb0b1
parent6bf6a9532fd03ad719f0c86654f16ef777b78fc6
KVM: ioapic: fix lost interrupt when changing a device's irq

The ioapic acknowledge path translates interrupt vectors to irqs.  It
currently uses a first match algorithm, stopping when it finds the first
redirection table entry containing the vector.  That fails however if the
guest changes the irq to a different line, leaving the old redirection table
entry in place (though masked).  Result is interrupts not making it to the
guest.

Fix by always scanning the entire redirection table.

Signed-off-by: Avi Kivity <avi@qumranet.com>
virt/kvm/ioapic.c