When enable vfio-pci mode for NIC driver on Juno board, the IRQ is failed to forward properly from host to guest, finally root caused this issue is related with kvmtool cannot re-enable INTx mode properly. So the basic working flow to reproduce this issue is as below: Host Guest ------------- -------------------- INTx mode MSI enable failed in NIC driver MSI disable in NIC driver Switch back to INTx mode --> kvmtool doesn't support So this patch is to support INTx mode re-enabling; patch 0001 is one minor fixing up for eventfd releasing; patch 0002 introduces a new function vfio_pci_init_intx() which is used to finish INTx one-time initialisation; patch 0003 is the core patch for support INTx mode re-enabling, when kvmtool detects MSI is disabled it rollbacks to INTx mode. This patch set has been tested on Juno-r2 board. == Changes for V4 == * Removed the unnecessary comments in patch 0003 (Jean-Philippe). * Added Jean-Philippe's review tags. == Changes for V3 == * Add new function vfio_pci_init_intx() for one-time initialisation. * Simplized INTx re-enabling (don't change irq_line anymore at the runtime). Leo Yan (3): vfio-pci: Release INTx's unmask eventfd properly vfio-pci: Add new function for INTx one-time initialisation vfio-pci: Re-enable INTx mode when disable MSI/MSIX include/kvm/vfio.h | 1 + vfio/pci.c | 95 ++++++++++++++++++++++++++++++---------------- 2 files changed, 64 insertions(+), 32 deletions(-) -- 2.19.1