Hi Mesut:

> -----Original Message-----
> From: Ergin, Mesut A
> Sent: Thursday, May 16, 2019 12:28 PM
> To: Xing, Beilei <beilei.x...@intel.com>; Zhang, Qi Z <qi.z.zh...@intel.com>
> Cc: dev@dpdk.org; Ergin, Mesut A <mesut.a.er...@intel.com>
> Subject: [PATCH 3/3] net/i40e: fix inadvertent override of vector RX allowance
> 
> When i40e_rx_vec_dev_conf_condition_check_default() determines whether
> vector receive functions would be allowed during initialization phase, it 
> should
> honor previously recorded disallowance during configuration phase, and not
> override simply because it is for the first queue.
> 
> Signed-off-by: Mesut Ali Ergin <mesut.a.er...@intel.com>
> ---
>  drivers/net/i40e/i40e_rxtx_vec_common.h | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/net/i40e/i40e_rxtx_vec_common.h
> b/drivers/net/i40e/i40e_rxtx_vec_common.h
> index 0e6ffa0..f30cab4 100644
> --- a/drivers/net/i40e/i40e_rxtx_vec_common.h
> +++ b/drivers/net/i40e/i40e_rxtx_vec_common.h
> @@ -212,6 +212,10 @@
> i40e_rx_vec_dev_conf_condition_check_default(struct rte_eth_dev *dev)
>       if (rxmode->offloads & DEV_RX_OFFLOAD_VLAN_EXTEND)
>               return -1;
> 
> +     /* Should not override if vector was already disallowed */

It is possible a device be reconfigured between dev_stop/dev_start, vector mode 
may fit for the new configure, so the old rx_vec_allowd should be ignored, 

Regards
Qi

> +     if (!ad->rx_vec_allowed)
> +     return -1;
> +
>       /**
>        * Vector mode is allowed only when number of Rx queue
>        * descriptor is power of 2.
> --
> 2.7.4

Reply via email to