When a VF port is bound to VFIO-PIC, only miscellaneous interrupt is mapped to VFIO vector 0 in i40evf_dev_init( ). In ixgbevf_dev_interrupt_handler( ), if previous VFIO interrupt mapping set in i40evf_dev_init( ) is not cleard, it will fail when calling rte_intr_enable( ) tries to map Rx queue interrupt to other VFIO vectors. This patch clears the VFIO interrupt mappings before setting both miscellaneous and Rx queue interrupt mappings again to avoid failure.
Fixes: 4b90a3ff26c5 ("i40evf: support Rx interrupt") Cc: sta...@dpdk.org Signed-off-by: Wei Dai <wei....@intel.com> --- drivers/net/i40e/i40e_ethdev_vf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c index 3b76c9e..567b7d0 100644 --- a/drivers/net/i40e/i40e_ethdev_vf.c +++ b/drivers/net/i40e/i40e_ethdev_vf.c @@ -1432,8 +1432,9 @@ i40evf_dev_interrupt_handler(void *param) " do nothing"); done: - i40evf_enable_irq0(hw); + rte_intr_disable(dev->intr_handle); rte_intr_enable(dev->intr_handle); + i40evf_enable_irq0(hw); } static int -- 2.7.5