The logic to set up a vector Rx queue was present in two places, before and after the Rx path was selected. In some cases, the rx queue would have been set up for vector Rx twice. Another scenario could occur where first the queue was set up for vector rx, then the scalar path selected but the vector rx setup would still persist. This of course would be incorrect behaviour, so it has been fixed by removing the setup logic that was before the path select code.
Fixes: 052ae311091c ("net/i40e: use the common Rx path selection infrastructure") Signed-off-by: Ciara Loftus <ciara.lof...@intel.com> --- drivers/net/intel/i40e/i40e_rxtx.c | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/drivers/net/intel/i40e/i40e_rxtx.c b/drivers/net/intel/i40e/i40e_rxtx.c index 4c0d12c179..434959e1c0 100644 --- a/drivers/net/intel/i40e/i40e_rxtx.c +++ b/drivers/net/intel/i40e/i40e_rxtx.c @@ -3356,17 +3356,6 @@ i40e_set_rx_function(struct rte_eth_dev *dev) rx_simd_width = RTE_VECT_SIMD_DISABLED; } - if (rx_simd_width != RTE_VECT_SIMD_DISABLED) { - for (i = 0; i < dev->data->nb_rx_queues; i++) { - struct ci_rx_queue *rxq = - dev->data->rx_queues[i]; - - if (rxq && i40e_rxq_vec_setup(rxq)) { - rx_simd_width = RTE_VECT_SIMD_DISABLED; - break; - } - } - } req_features.simd_width = rx_simd_width; if (dev->data->scattered_rx) -- 2.34.1