From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 730FF1B3B4 for ; Tue, 10 Jul 2018 08:44:45 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Jul 2018 23:44:43 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,333,1526367600"; d="scan'208";a="71022521" Received: from shermansrv-s2600wft.sh.intel.com ([10.67.110.237]) by fmsmga001.fm.intel.com with ESMTP; 09 Jul 2018 23:44:43 -0700 From: Shaopeng He To: dev@dpdk.org Cc: qi.z.zhang@intel.com, Shaopeng He Date: Tue, 10 Jul 2018 06:37:27 -0400 Message-Id: <20180710103727.209243-1-shaopeng.he@intel.com> X-Mailer: git-send-email 2.17.0 Subject: [dpdk-dev] [PATCH] net/i40e: fix tx queue setup after stop queue 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: , X-List-Received-Date: Tue, 10 Jul 2018 06:44:45 -0000 Currently, i40e_dev_tx_queue_setup_runtime checks simple tx and treats mbuf fast free offloading as No-simple, which is classified as simple tx in i40e_set_tx_function_flag. This inconsistent behavior causes tx queue setup fail after queue was stopped. This patch fixes this bug. Fixes: 399421100e08 ("net/i40e: fix missing mbuf fast free offload") Signed-off-by: Shaopeng He --- drivers/net/i40e/i40e_rxtx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c index 6032d5541..2bbb82fc3 100644 --- a/drivers/net/i40e/i40e_rxtx.c +++ b/drivers/net/i40e/i40e_rxtx.c @@ -2087,7 +2087,7 @@ i40e_dev_tx_queue_setup_runtime(struct rte_eth_dev *dev, } /* check simple tx conflict */ if (ad->tx_simple_allowed) { - if (txq->offloads != 0 || + if ((txq->offloads & ~DEV_TX_OFFLOAD_MBUF_FAST_FREE) != 0 || txq->tx_rs_thresh < RTE_PMD_I40E_TX_MAX_BURST) { PMD_DRV_LOG(ERR, "No-simple tx is required."); return -EINVAL; -- 2.17.0