linux/virt/kvm
Mark McLoughlin defaf1587c KVM: fix handling of ACK from shared guest IRQ
If an assigned device shares a guest irq with an emulated
device then we currently interpret an ack generated by the
emulated device as originating from the assigned device
leading to e.g. "Unbalanced enable for IRQ 4347" from the
enable_irq() in kvm_assigned_dev_ack_irq().

The fix is fairly simple - don't enable the physical device
irq unless it was previously disabled.

Of course, this can still lead to a situation where a
non-assigned device ACK can cause the physical device irq to
be reenabled before the device was serviced. However, being
level sensitive, the interrupt will merely be regenerated.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
2008-12-31 16:55:47 +02:00
..
coalesced_mmio.c KVM: Add coalesced MMIO support (common part) 2008-07-20 12:42:31 +03:00
coalesced_mmio.h KVM: Add coalesced MMIO support (common part) 2008-07-20 12:42:31 +03:00
ioapic.c KVM: Export ioapic_get_delivery_bitmask 2008-12-31 16:55:01 +02:00
ioapic.h KVM: Export ioapic_get_delivery_bitmask 2008-12-31 16:55:01 +02:00
iodev.h KVM: kvm_io_device: extend in_range() to manage len and write attribute 2008-07-20 12:42:30 +03:00
irq_comm.c KVM: add KVM_USERSPACE_IRQ_SOURCE_ID assertions 2008-12-31 16:55:07 +02:00
kvm_main.c KVM: fix handling of ACK from shared guest IRQ 2008-12-31 16:55:47 +02:00
kvm_trace.c KVM: Prevent trace call into unloaded module text 2008-12-31 16:55:04 +02:00
vtd.c KVM: Device Assignment: Move vtd.c from arch/x86/kvm/ to virt/kvm/ 2008-10-15 14:25:32 +02:00