From: Michael S. Tsirkin <[email protected]>

Irqfd sets level for interrupt to 1 and then to 0.
For MSI, check level so that a single message is sent.

Signed-off-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>

diff --git a/virt/kvm/irq_comm.c b/virt/kvm/irq_comm.c
index c380bf0..7af18b8 100644
--- a/virt/kvm/irq_comm.c
+++ b/virt/kvm/irq_comm.c
@@ -139,7 +139,9 @@ int kvm_set_irq(struct kvm *kvm, int irq_source_id, int 
irq, int level)
                else
                        clear_bit(irq_source_id, irq_state);
                sig_level = !!(*irq_state);
-       } else /* Deal with MSI/MSI-X */
+       } else if (!level)
+               return ret;
+       else /* Deal with MSI/MSI-X */
                sig_level = 1;
 
        /* Not possible to detect if the guest uses the PIC or the
--
To unsubscribe from this list: send the line "unsubscribe kvm-commits" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to