[dpdk-stable] [PATCH] net/bonding: fix create bonded device test failure
Hari Kumar Vemula
hari.kumarx.vemula at intel.com
Tue Jan 8 07:18:06 CET 2019
Create bonded device test is failing due to improper initialisation in
bonded device configuration. which leads to crash while setting up queues.
The value of nb_rx_desc is checked if it is not in range of rx_desc_lim of
bonded device which fails.
This is due to "rx_desc_lim" is set to 0 as default value of bonded device
during bond_alloc().
Hence nb_rx_desc (1024) is > 0 and test fails.
Fix is to set the default values of rx_desc_lim of bonded device to
appropriate value.
Fixes: 2efb58cbab ("bond: new link bonding library")
Cc: stable at dpdk.org
Signed-off-by: Hari Kumar Vemula <hari.kumarx.vemula at intel.com>
---
drivers/net/bonding/rte_eth_bond_pmd.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index 44deaf119..e0888e960 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -2225,6 +2225,11 @@ static void
bond_ethdev_info(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
{
struct bond_dev_private *internals = dev->data->dev_private;
+ struct rte_eth_desc_lim bond_lim = {
+ .nb_max = UINT16_MAX,
+ .nb_min = 0,
+ .nb_align = 1,
+ };
uint16_t max_nb_rx_queues = UINT16_MAX;
uint16_t max_nb_tx_queues = UINT16_MAX;
@@ -2263,10 +2268,8 @@ bond_ethdev_info(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
memcpy(&dev_info->default_txconf, &internals->default_txconf,
sizeof(dev_info->default_txconf));
- memcpy(&dev_info->rx_desc_lim, &internals->rx_desc_lim,
- sizeof(dev_info->rx_desc_lim));
- memcpy(&dev_info->tx_desc_lim, &internals->tx_desc_lim,
- sizeof(dev_info->tx_desc_lim));
+ dev_info->rx_desc_lim = bond_lim;
+ dev_info->tx_desc_lim = bond_lim;
/**
* If dedicated hw queues enabled for link bonding device in LACP mode
--
2.17.2
More information about the stable
mailing list