[dpdk-dev] [PATCH] fm10k: fix wrong Rx func is used

Wang, Xiao W xiao.w.wang at intel.com
Fri Nov 27 06:38:13 CET 2015


Hi,

> -----Original Message-----
> From: Chen, Jing D
> Sent: Friday, November 27, 2015 9:56 AM
> To: dev at dpdk.org
> Cc: Wang, Xiao W <xiao.w.wang at intel.com>; Chen, Jing D
> <jing.d.chen at intel.com>
> Subject: [PATCH] fm10k: fix wrong Rx func is used
> 
> From: "Chen Jing D(Mark)" <jing.d.chen at intel.com>
> 
> 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 <xiao.w.wang at intel.com>
> Signed-off-by: Chen Jing D(Mark) <jing.d.chen at intel.com>
> ---
>  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
Acked-by: Xiao Wang <xiao.w.wang at intel.com>


More information about the dev mailing list