From 492180e03a2b60ad315faa2b62d8c2cf51370ee6 Mon Sep 17 00:00:00 2001 From: Wenzhuo Lu Date: Wed, 24 Jan 2018 16:16:53 +0800 Subject: [PATCH] net/avf: fix VF Rx interrupt enabling As UIO doesn't support multiple interrupt, and the interrupt is occupied by the control plane. PMD should not try to enable RX queue interrupt. Then APP can know the RX queue interrupt is not enabled and only choose the polling mode. Fixes: d6bde6b5eae9 ("net/avf: enable Rx interrupt") Signed-off-by: Wenzhuo Lu Acked-by: Beilei Xing --- drivers/net/avf/avf_ethdev.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/avf/avf_ethdev.c b/drivers/net/avf/avf_ethdev.c index cf7bbb2e73..eba1d6856e 100644 --- a/drivers/net/avf/avf_ethdev.c +++ b/drivers/net/avf/avf_ethdev.c @@ -292,7 +292,8 @@ static int avf_config_rx_queues_irqs(struct rte_eth_dev *dev, uint16_t interval, i; int vec; - if (dev->data->dev_conf.intr_conf.rxq != 0) { + if (rte_intr_cap_multiple(intr_handle) && + dev->data->dev_conf.intr_conf.rxq) { if (rte_intr_efd_enable(intr_handle, dev->data->nb_rx_queues)) return -1; } @@ -308,7 +309,8 @@ static int avf_config_rx_queues_irqs(struct rte_eth_dev *dev, } } - if (!dev->data->dev_conf.intr_conf.rxq) { + if (!dev->data->dev_conf.intr_conf.rxq || + !rte_intr_dp_is_en(intr_handle)) { /* Rx interrupt disabled, Map interrupt only for writeback */ vf->nb_msix = 1; if (vf->vf_res->vf_cap_flags & -- 2.20.1