@@ -128,6 +128,18 @@ static void vfio_intx_enable_kvm(VFIOPCIDevice *vdev, Error **errp)
return;
}
+ if (kvm_irqchip_is_split()) {
+ /*
+ * VFIO INTx is currently not working with split kernel
+ * irqchip for level triggered interrupts. Go the slow path
+ * as long as split is enabled so we can be at least
+ * functional (even with poor performance).
+ *
+ * TODO: Remove this after all things fixed up.
+ */
+ return;
+ }
+
/* Get to a known interrupt state */
qemu_set_fd_handler(irqfd.fd, NULL, NULL, vdev);
vfio_mask_single_irqindex(&vdev->vbasedev, VFIO_PCI_INTX_IRQ_INDEX);