From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 58043A0518; Fri, 24 Jul 2020 05:07:00 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B0D601D5F9; Fri, 24 Jul 2020 05:06:58 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 394ED1D5F6; Fri, 24 Jul 2020 05:06:57 +0200 (CEST) IronPort-SDR: uFL8guTEZNOeKPc1W9AZQVaitQmvogaSMPe5ds1AFtJUCDUCmhAAa7beQPo2iz+ZkeMU6FUtIV 5xQFWLdJAq6A== X-IronPort-AV: E=McAfee;i="6000,8403,9691"; a="235531077" X-IronPort-AV: E=Sophos;i="5.75,389,1589266800"; d="scan'208";a="235531077" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jul 2020 20:06:56 -0700 IronPort-SDR: BqHXduolLFJJDLCYcKp6G61TL+Ilxnz0V128YF+MW2k288VfpRq7961EitU3vDmraSONAtFblV rT9GyiqKA5nw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,389,1589266800"; d="scan'208";a="393191220" Received: from intel.sh.intel.com ([10.239.255.20]) by fmsmga001.fm.intel.com with ESMTP; 23 Jul 2020 20:06:54 -0700 From: Shougang Wang To: dev@dpdk.org Cc: beilei.xing@intel.com, jia.guo@intel.com, Shougang Wang , stable@dpdk.org Date: Fri, 24 Jul 2020 02:47:12 +0000 Message-Id: <20200724024712.10727-1-shougangx.wang@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200715063515.9262-1-shougangx.wang@intel.com> References: <20200715063515.9262-1-shougangx.wang@intel.com> Subject: [dpdk-dev] [PATCH v4] net/i40e: fix incorrect hash look up table 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 hash look up table (LUT) is managed by global register but it is not initialized when RSS is disabled. Once user wants to enable RSS during runtime, the LUT will not be initialized. This patch fixes the issue by initializing the LUT whether RSS enabled or not. Fixes: feaae285b342 ("net/i40e: support hash configuration in RSS flow") Cc: stable@dpdk.org Signed-off-by: Shougang Wang --- v4: -Updated code. --- drivers/net/i40e/i40e_ethdev.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index 05d5f2861..0a3f5e3c1 100644 --- a/drivers/net/i40e/i40e_ethdev.c +++ b/drivers/net/i40e/i40e_ethdev.c @@ -8985,6 +8985,7 @@ static int i40e_pf_config_rss(struct i40e_pf *pf) { struct i40e_hw *hw = I40E_PF_TO_HW(pf); + enum rte_eth_rx_mq_mode mq_mode = pf->dev_data->dev_conf.rxmode.mq_mode; struct rte_eth_rss_conf rss_conf; uint32_t i, lut = 0; uint16_t j, num; @@ -9022,7 +9023,8 @@ i40e_pf_config_rss(struct i40e_pf *pf) } rss_conf = pf->dev_data->dev_conf.rx_adv_conf.rss_conf; - if ((rss_conf.rss_hf & pf->adapter->flow_types_mask) == 0) { + if ((rss_conf.rss_hf & pf->adapter->flow_types_mask) == 0 || + !(mq_mode & ETH_MQ_RX_RSS_FLAG)) { i40e_pf_disable_rss(pf); return 0; } @@ -9198,16 +9200,7 @@ i40e_tunnel_filter_handle(struct rte_eth_dev *dev, static int i40e_pf_config_mq_rx(struct i40e_pf *pf) { - int ret = 0; - enum rte_eth_rx_mq_mode mq_mode = pf->dev_data->dev_conf.rxmode.mq_mode; - - /* RSS setup */ - if (mq_mode & ETH_MQ_RX_RSS_FLAG) - ret = i40e_pf_config_rss(pf); - else - i40e_pf_disable_rss(pf); - - return ret; + return i40e_pf_config_rss(pf); } /* Get the symmetric hash enable configurations per port */ -- 2.17.1