From patchwork Wed Jan 24 08:16:53 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wenzhuo Lu X-Patchwork-Id: 34396 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 970791B1A9; Wed, 24 Jan 2018 09:14:59 +0100 (CET) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 1B5452BE1 for ; Wed, 24 Jan 2018 09:14:52 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Jan 2018 00:14:52 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.46,406,1511856000"; d="scan'208";a="24290482" Received: from dpdk26.sh.intel.com ([10.67.110.152]) by fmsmga004.fm.intel.com with ESMTP; 24 Jan 2018 00:14:51 -0800 From: Wenzhuo Lu To: dev@dpdk.org Cc: Wenzhuo Lu Date: Wed, 24 Jan 2018 16:16:53 +0800 Message-Id: <1516781813-50818-5-git-send-email-wenzhuo.lu@intel.com> X-Mailer: git-send-email 1.9.3 In-Reply-To: <1516781813-50818-1-git-send-email-wenzhuo.lu@intel.com> References: <1516757925-3746-1-git-send-email-wenzhuo.lu@intel.com> <1516781813-50818-1-git-send-email-wenzhuo.lu@intel.com> Subject: [dpdk-dev] [PATCH v2 4/4] net/avf: fix VF RX queue interrupt enabling X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 --- 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 b36d317..2bd5170 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 &