X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fenic%2Fenic_rxtx_vec_avx2.c;h=1848f52717448b48c65049e2c1eea28c9485593c;hb=78156d38e112b33032eedfada65b0df8b047bc31;hp=36d4d0deab0a271cbd3780cfe07540d4c091b72b;hpb=e92a4b4148d3caadb5d3a8351fdf0fa3a2a709c2;p=dpdk.git diff --git a/drivers/net/enic/enic_rxtx_vec_avx2.c b/drivers/net/enic/enic_rxtx_vec_avx2.c index 36d4d0deab..1848f52717 100644 --- a/drivers/net/enic/enic_rxtx_vec_avx2.c +++ b/drivers/net/enic/enic_rxtx_vec_avx2.c @@ -4,7 +4,8 @@ */ #include -#include +#include +#include #include "enic_compat.h" #include "rq_enet_desc.h" @@ -809,7 +810,6 @@ bool enic_use_vector_rx_handler(struct rte_eth_dev *eth_dev) { struct enic *enic = pmd_priv(eth_dev); - struct rte_fdir_conf *fconf; /* User needs to request for the avx2 handler */ if (!enic->enable_avx2_rx) @@ -817,13 +817,11 @@ enic_use_vector_rx_handler(struct rte_eth_dev *eth_dev) /* Do not support scatter Rx */ if (!(enic->rq_count > 0 && enic->rq[0].data_queue_enable == 0)) return false; - /* Do not support fdir/flow */ - fconf = ð_dev->data->dev_conf.fdir_conf; - if (fconf->mode != RTE_FDIR_MODE_NONE) - return false; - if (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX2)) { + if (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX2) && + rte_vect_get_max_simd_bitwidth() >= RTE_VECT_SIMD_256) { ENICPMD_LOG(DEBUG, " use the non-scatter avx2 Rx handler"); eth_dev->rx_pkt_burst = &enic_noscatter_vec_recv_pkts; + enic->use_noscatter_vec_rx_handler = 1; return true; } return false;