When choosing a vector path to take, an extra condition must be
satisfied to ensure the max SIMD bitwidth allows for the CPU enabled
path.

Cc: Matan Azrad <ma...@mellanox.com>
Cc: Shahaf Shuler <shah...@mellanox.com>
Cc: Viacheslav Ovsiienko <viachesl...@mellanox.com>

Signed-off-by: Ciara Power <ciara.po...@intel.com>
---
 drivers/net/mlx5/mlx5_ethdev.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c
index cefb45064e..f322f82029 100644
--- a/drivers/net/mlx5/mlx5_ethdev.c
+++ b/drivers/net/mlx5/mlx5_ethdev.c
@@ -479,7 +479,8 @@ mlx5_select_rx_function(struct rte_eth_dev *dev)
        eth_rx_burst_t rx_pkt_burst = mlx5_rx_burst;
 
        MLX5_ASSERT(dev != NULL);
-       if (mlx5_check_vec_rx_support(dev) > 0) {
+       if (mlx5_check_vec_rx_support(dev) > 0 &&
+                       rte_get_max_simd_bitwidth() >= RTE_MAX_128_SIMD) {
                rx_pkt_burst = mlx5_rx_burst_vec;
                DRV_LOG(DEBUG, "port %u selected Rx vectorized function",
                        dev->data->port_id);
-- 
2.17.1

Reply via email to