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

Reply via email to