From patchwork Fri Jan 17 08:22:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Cui, LunyuanX" X-Patchwork-Id: 64827 X-Patchwork-Delegate: xiaolong.ye@intel.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id C95ECA051A; Fri, 17 Jan 2020 09:25:58 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 5F2E41D176; Fri, 17 Jan 2020 09:25:58 +0100 (CET) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id C29F01D16C for ; Fri, 17 Jan 2020 09:25:55 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 Jan 2020 00:23:26 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,329,1574150400"; d="scan'208";a="257715945" Received: from intel.sh.intel.com ([10.239.255.129]) by fmsmga002.fm.intel.com with ESMTP; 17 Jan 2020 00:23:25 -0800 From: Lunyuan Cui To: dev@dpdk.org Cc: Qiming Yang , Lunyuan Cui Date: Fri, 17 Jan 2020 08:22:58 +0000 Message-Id: <20200117082258.2437-1-lunyuanx.cui@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <200110083514.134541-1-lunyuanx.cui@intel.com> References: <200110083514.134541-1-lunyuanx.cui@intel.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v4] net/i40e: fix multi-queue Rx interrupt for VF 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" The interrupt vector which bind to queues should not larger than the max avaiable vertor. It will cause port start failed. This patch changed the judgement condition of the limited vector id. It can effectively avoid vector id out of range. Fixes: 5b8d2d89dd99 (net/i40e: enable multi-queue Rx interrupt for VF) Signed-off-by: Lunyuan Cui Reviewed-by: Qiming Yang --- v4: - Change commit message v3: - Change commit message v2: - Change commit message --- drivers/net/i40e/i40e_ethdev_vf.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c index 479f8282c..d514e8991 100644 --- a/drivers/net/i40e/i40e_ethdev_vf.c +++ b/drivers/net/i40e/i40e_ethdev_vf.c @@ -657,7 +657,6 @@ i40evf_config_irq_map(struct rte_eth_dev *dev) struct rte_intr_handle *intr_handle = &pci_dev->intr_handle; uint32_t vector_id; int i, err; - uint16_t nb_msix; if (dev->data->dev_conf.intr_conf.rxq != 0 && rte_intr_allow_others(intr_handle)) @@ -665,9 +664,6 @@ i40evf_config_irq_map(struct rte_eth_dev *dev) else vector_id = I40E_MISC_VEC_ID; - nb_msix = RTE_MIN(vf->vf_res->max_vectors, - intr_handle->nb_efd); - map_info = (struct virtchnl_irq_map_info *)cmd_buffer; map_info->num_vectors = dev->data->nb_rx_queues; for (i = 0; i < dev->data->nb_rx_queues; i++) { @@ -682,7 +678,7 @@ i40evf_config_irq_map(struct rte_eth_dev *dev) intr_handle->intr_vec[i] = vector_id; if (vector_id > I40E_MISC_VEC_ID) vector_id++; - if (vector_id > nb_msix) + if (vector_id >= vf->vf_res->max_vectors) vector_id = I40E_RX_VEC_START; }