From 33e79bed3edc2bcf59909f89ec39d2530b6913fe Mon Sep 17 00:00:00 2001 From: Bruce Richardson Date: Wed, 22 Oct 2014 11:55:45 +0100 Subject: [PATCH] ixgbe: always perform vector Rx setup if vpmd enabled If the vector pmd option is turned on in the compile time config file, then always call the vector rxq setup, since we can now use the vector PMD for receiving jumbo frames that need chained mbufs, a.k.a scattered packets. Up till now, this function was not being called when receiving scattered packets, potentially leading to problems with mbufs not being properly initialized. Signed-off-by: Bruce Richardson Acked-by: Changchun Ouyang --- lib/librte_pmd_ixgbe/ixgbe_rxtx.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/librte_pmd_ixgbe/ixgbe_rxtx.c b/lib/librte_pmd_ixgbe/ixgbe_rxtx.c index 123b8b357d..3a5a8fffc1 100644 --- a/lib/librte_pmd_ixgbe/ixgbe_rxtx.c +++ b/lib/librte_pmd_ixgbe/ixgbe_rxtx.c @@ -2191,6 +2191,9 @@ ixgbe_dev_rx_queue_setup(struct rte_eth_dev *dev, */ use_def_burst_func = check_rx_burst_bulk_alloc_preconditions(rxq); +#ifdef RTE_IXGBE_INC_VECTOR + ixgbe_rxq_vec_setup(rxq); +#endif /* Check if pre-conditions are satisfied, and no Scattered Rx */ if (!use_def_burst_func && !dev->data->scattered_rx) { #ifdef RTE_LIBRTE_IXGBE_RX_ALLOW_BULK_ALLOC @@ -2203,7 +2206,6 @@ ixgbe_dev_rx_queue_setup(struct rte_eth_dev *dev, if (!ixgbe_rx_vec_condition_check(dev)) { PMD_INIT_LOG(INFO, "Vector rx enabled, please make " "sure RX burst size no less than 32."); - ixgbe_rxq_vec_setup(rxq); dev->rx_pkt_burst = ixgbe_recv_pkts_vec; } #endif