From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 925B32C66 for ; Thu, 10 Mar 2016 16:26:33 +0100 (CET) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga101.jf.intel.com with ESMTP; 10 Mar 2016 07:26:33 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.24,316,1455004800"; d="scan'208";a="921006329" Received: from irvmail001.ir.intel.com ([163.33.26.43]) by fmsmga001.fm.intel.com with ESMTP; 10 Mar 2016 07:26:31 -0800 Received: from sivswdev01.ir.intel.com (sivswdev01.ir.intel.com [10.237.217.45]) by irvmail001.ir.intel.com (8.14.3/8.13.6/MailSET/Hub) with ESMTP id u2AFQUi9023942; Thu, 10 Mar 2016 15:26:30 GMT Received: from sivswdev01.ir.intel.com (localhost [127.0.0.1]) by sivswdev01.ir.intel.com with ESMTP id u2AFQUgs012106; Thu, 10 Mar 2016 15:26:30 GMT Received: (from bricha3@localhost) by sivswdev01.ir.intel.com with id u2AFQUNK012102; Thu, 10 Mar 2016 15:26:30 GMT From: Bruce Richardson To: dev@dpdk.org, zhe.tao@intel.com Date: Thu, 10 Mar 2016 15:26:22 +0000 Message-Id: <1457623582-12068-1-git-send-email-bruce.richardson@intel.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1457426981-22571-1-git-send-email-zhe.tao@intel.com> References: <1457426981-22571-1-git-send-email-zhe.tao@intel.com> Subject: [dpdk-dev] [PATCH v3] ixgbe: fix ixgbevf RX/TX function assignment X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Mar 2016 15:26:34 -0000 From: Zhe Tao For the secondary process of DPDK to initialize ixgbevf, it will always use the simple RX function or LRO RX function, and this behavior is not the same RX/TX function selection logic as it is for the primary process. Use the ixgbe_set_tx_function and ixgbe_set_rx_function to select the RX/TX function when secondary process calls the init function for eth dev. Fixes: 9d8a92628f21 ("ixgbe: remove simple scalar scattered Rx method") Signed-off-by: Zhe Tao Signed-off-by: Bruce Richardson --- V3: fixed spacing and string splitting issues flagged by checkpatch.pl adjusted the fixes line to show original commit to introduce the bug V2: add fixes line --- drivers/net/ixgbe/ixgbe_ethdev.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c index 891be50..a9a1583 100644 --- a/drivers/net/ixgbe/ixgbe_ethdev.c +++ b/drivers/net/ixgbe/ixgbe_ethdev.c @@ -1291,8 +1291,21 @@ eth_ixgbevf_dev_init(struct rte_eth_dev *eth_dev) * has already done this work. Only check we don't need a different * RX function */ if (rte_eal_process_type() != RTE_PROC_PRIMARY){ - if (eth_dev->data->scattered_rx) - eth_dev->rx_pkt_burst = ixgbe_recv_pkts_lro_single_alloc; + struct ixgbe_tx_queue *txq; + /* TX queue function in primary, set by last queue initialized + * Tx queue may not initialized by primary process + */ + if (eth_dev->data->tx_queues) { + txq = eth_dev->data->tx_queues[eth_dev->data->nb_tx_queues - 1]; + ixgbe_set_tx_function(eth_dev, txq); + } else { + /* Use default TX function if we get here */ + PMD_INIT_LOG(NOTICE, + "No TX queues configured yet. Using default TX function."); + } + + ixgbe_set_rx_function(eth_dev); + return 0; } -- 2.5.0