[dpdk-dev,v2] net/i40e: fix testpmd setup error when bulk is disabled

Message ID 1492678296-115636-1-git-send-email-beilei.xing@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Xing, Beilei April 20, 2017, 8:51 a.m. UTC
  Testpmd failed to start when CONFIG_RTE_LIBRTE_I40E_RX_ALLOW_BULK_ALLOC
is disabled, the root cause is the length of sw_ring and queue are
incorrect with the above configuration.

Fixes: 0be295312966 ("net/i40e: fix compile error")

Signed-off-by: Beilei Xing <beilei.xing@intel.com>
---
v2 change:
 Correct the length of queue when BULK is disabled.

 drivers/net/i40e/i40e_rxtx.c | 6 ------
 1 file changed, 6 deletions(-)
  

Comments

Qi Zhang April 20, 2017, 8:57 a.m. UTC | #1
> -----Original Message-----
> From: Xing, Beilei
> Sent: Thursday, April 20, 2017 4:52 PM
> To: Wu, Jingjing <jingjing.wu@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>
> Cc: dev@dpdk.org
> Subject: [PATCH v2] net/i40e: fix testpmd setup error when bulk is disabled
> 
> Testpmd failed to start when
> CONFIG_RTE_LIBRTE_I40E_RX_ALLOW_BULK_ALLOC
> is disabled, the root cause is the length of sw_ring and queue are incorrect
> with the above configuration.
> 
> Fixes: 0be295312966 ("net/i40e: fix compile error")
> 
> Signed-off-by: Beilei Xing <beilei.xing@intel.com>
> ---
> v2 change:
>  Correct the length of queue when BULK is disabled.
> 
>  drivers/net/i40e/i40e_rxtx.c | 6 ------
>  1 file changed, 6 deletions(-)
> 
> diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c index
> e5471b1..9f697d7 100644
> --- a/drivers/net/i40e/i40e_rxtx.c
> +++ b/drivers/net/i40e/i40e_rxtx.c
> @@ -1791,13 +1791,11 @@ i40e_dev_rx_queue_setup(struct rte_eth_dev
> *dev,
>  	/* Allocate the maximun number of RX ring hardware descriptor. */
>  	len = I40E_MAX_RING_DESC;
> 
> -#ifdef RTE_LIBRTE_I40E_RX_ALLOW_BULK_ALLOC
>  	/**
>  	 * Allocating a little more memory because vectorized/bulk_alloc Rx
>  	 * functions doesn't check boundaries each time.
>  	 */
>  	len += RTE_PMD_I40E_RX_MAX_BURST;
> -#endif
> 
>  	ring_size = RTE_ALIGN(len * sizeof(union i40e_rx_desc),
>  			      I40E_DMA_MEM_ALIGN);
> @@ -1816,11 +1814,7 @@ i40e_dev_rx_queue_setup(struct rte_eth_dev
> *dev,
>  	rxq->rx_ring_phys_addr = rte_mem_phy2mch(rz->memseg_id,
> rz->phys_addr);
>  	rxq->rx_ring = (union i40e_rx_desc *)rz->addr;
> 
> -#ifdef RTE_LIBRTE_I40E_RX_ALLOW_BULK_ALLOC
>  	len = (uint16_t)(nb_desc + RTE_PMD_I40E_RX_MAX_BURST); -#else
> -	len = nb_desc;
> -#endif
> 
>  	/* Allocate the software ring. */
>  	rxq->sw_ring =
> --
> 2.5.5

Acked-by: Qi Zhang <qi.z.zhang@intel.com>
  

Patch

diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c
index e5471b1..9f697d7 100644
--- a/drivers/net/i40e/i40e_rxtx.c
+++ b/drivers/net/i40e/i40e_rxtx.c
@@ -1791,13 +1791,11 @@  i40e_dev_rx_queue_setup(struct rte_eth_dev *dev,
 	/* Allocate the maximun number of RX ring hardware descriptor. */
 	len = I40E_MAX_RING_DESC;
 
-#ifdef RTE_LIBRTE_I40E_RX_ALLOW_BULK_ALLOC
 	/**
 	 * Allocating a little more memory because vectorized/bulk_alloc Rx
 	 * functions doesn't check boundaries each time.
 	 */
 	len += RTE_PMD_I40E_RX_MAX_BURST;
-#endif
 
 	ring_size = RTE_ALIGN(len * sizeof(union i40e_rx_desc),
 			      I40E_DMA_MEM_ALIGN);
@@ -1816,11 +1814,7 @@  i40e_dev_rx_queue_setup(struct rte_eth_dev *dev,
 	rxq->rx_ring_phys_addr = rte_mem_phy2mch(rz->memseg_id, rz->phys_addr);
 	rxq->rx_ring = (union i40e_rx_desc *)rz->addr;
 
-#ifdef RTE_LIBRTE_I40E_RX_ALLOW_BULK_ALLOC
 	len = (uint16_t)(nb_desc + RTE_PMD_I40E_RX_MAX_BURST);
-#else
-	len = nb_desc;
-#endif
 
 	/* Allocate the software ring. */
 	rxq->sw_ring =