X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fvirtio%2Fvirtio_rxtx.c;h=868550757b5406d801f85bfa212a64cb184e03f3;hb=4819eae8d94b363bdf19bb098ebd7a0940e4501f;hp=a32e3229f868243afcc6936b8fc56367daa8d4a9;hpb=efc83a1e7fc319876835738871bf968e7ed5c935;p=dpdk.git diff --git a/drivers/net/virtio/virtio_rxtx.c b/drivers/net/virtio/virtio_rxtx.c index a32e3229f8..868550757b 100644 --- a/drivers/net/virtio/virtio_rxtx.c +++ b/drivers/net/virtio/virtio_rxtx.c @@ -50,7 +50,6 @@ #include #include #include -#include #include #include #include @@ -501,31 +500,6 @@ virtio_dev_rx_queue_setup_finish(struct rte_eth_dev *dev, uint16_t queue_idx) return 0; } -static void -virtio_update_rxtx_handler(struct rte_eth_dev *dev, - const struct rte_eth_txconf *tx_conf) -{ - uint8_t use_simple_rxtx = 0; - struct virtio_hw *hw = dev->data->dev_private; - -#if defined RTE_ARCH_X86 - if (rte_cpu_get_flag_enabled(RTE_CPUFLAG_SSE3)) - use_simple_rxtx = 1; -#elif defined RTE_ARCH_ARM64 || defined CONFIG_RTE_ARCH_ARM - if (rte_cpu_get_flag_enabled(RTE_CPUFLAG_NEON)) - use_simple_rxtx = 1; -#endif - /* Use simple rx/tx func if single segment and no offloads */ - if (use_simple_rxtx && - (tx_conf->txq_flags & VIRTIO_SIMPLE_FLAGS) == VIRTIO_SIMPLE_FLAGS && - !vtpci_with_feature(hw, VIRTIO_NET_F_MRG_RXBUF)) { - PMD_INIT_LOG(INFO, "Using simple rx/tx path"); - dev->tx_pkt_burst = virtio_xmit_pkts_simple; - dev->rx_pkt_burst = virtio_recv_pkts_vec; - hw->use_simple_rxtx = use_simple_rxtx; - } -} - /* * struct rte_eth_dev *dev: Used to update dev * uint16_t nb_desc: Defaults to values read from config space @@ -548,7 +522,9 @@ virtio_dev_tx_queue_setup(struct rte_eth_dev *dev, PMD_INIT_FUNC_TRACE(); - virtio_update_rxtx_handler(dev, tx_conf); + /* cannot use simple rxtx funcs with multisegs or offloads */ + if ((tx_conf->txq_flags & VIRTIO_SIMPLE_FLAGS) != VIRTIO_SIMPLE_FLAGS) + hw->use_simple_rxtx = 0; if (nb_desc == 0 || nb_desc > vq->vq_nentries) nb_desc = vq->vq_nentries;