When binding a device to igb_uio with intr_conf.rxq set to 1, nb_efd is 1 (for link event) but rte_intr_dp_is_en() will still return true. rte_intr_dp_is_en() should also consider intr_handle type in addition to nb_efd.
Signed-off-by: Yong Wang <yongwang at vmware.com> --- lib/librte_eal/linuxapp/eal/eal_interrupts.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/librte_eal/linuxapp/eal/eal_interrupts.c b/lib/librte_eal/linuxapp/eal/eal_interrupts.c index 47a3b20..71f63e9 100644 --- a/lib/librte_eal/linuxapp/eal/eal_interrupts.c +++ b/lib/librte_eal/linuxapp/eal/eal_interrupts.c @@ -1200,7 +1200,8 @@ rte_intr_efd_disable(struct rte_intr_handle *intr_handle) int rte_intr_dp_is_en(struct rte_intr_handle *intr_handle) { - return !(!intr_handle->nb_efd); + return (!(!intr_handle->nb_efd) && + (intr_handle->type == RTE_INTR_HANDLE_VFIO_MSIX)); } int -- 1.9.1