From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Chen Jing D(Mark)" Subject: [PATCH] fm10k: fix wrong Rx func is used Date: Fri, 27 Nov 2015 09:55:45 +0800 Message-ID: <1448589345-16239-1-git-send-email-jing.d.chen@intel.com> To: dev@dpdk.org Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id E8DC158F1 for ; Fri, 27 Nov 2015 02:55:54 +0100 (CET) List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: "Chen Jing D(Mark)" Steps to reproduce the bug: 1. All Rx offloading is disabled and start the device, then Vector Rx is used. 2. Stop the device. Re-configure to enable hw_ip_checksum = 1, start the device again. 3. In this case, assume regular Rx should be used since Vector Rx doesn't support ip checksum offload. But actually Vector Rx is used and cause checksum won't be done by hardware. The reason is after re-configuring, driver misses an "else" in func fm10k_set_rx_function(). Then Rx func in last round are used. Fixes:77a8ab47("fm10k: select best Rx function") Reported-by: Xiao Wang Signed-off-by: Chen Jing D(Mark) --- drivers/net/fm10k/fm10k_ethdev.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c index 4f23ce3..e4aed94 100644 --- a/drivers/net/fm10k/fm10k_ethdev.c +++ b/drivers/net/fm10k/fm10k_ethdev.c @@ -2486,6 +2486,8 @@ fm10k_set_rx_function(struct rte_eth_dev *dev) dev->rx_pkt_burst = fm10k_recv_pkts_vec; } else if (dev->data->scattered_rx) dev->rx_pkt_burst = fm10k_recv_scattered_pkts; + else + dev->rx_pkt_burst = fm10k_recv_pkts; rx_using_sse = (dev->rx_pkt_burst == fm10k_recv_scattered_pkts_vec || -- 1.7.7.6