Because the return value of rte_vdev_init() has multiple non-zero values,
when rte_vdev_init() return non-zero in the rte_eth_bond_create() function,
it should return the actual error code rather than -ENOMEM.

Fixes: 68451eb6698c ("net/bonding: call through EAL on create/free")
Cc: sta...@dpdk.org

Signed-off-by: Wei Hu (Xavier) <xavier.hu...@huawei.com>
---
 drivers/net/bonding/rte_eth_bond_api.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/bonding/rte_eth_bond_api.c 
b/drivers/net/bonding/rte_eth_bond_api.c
index f38eb3b..d77dc40 100644
--- a/drivers/net/bonding/rte_eth_bond_api.c
+++ b/drivers/net/bonding/rte_eth_bond_api.c
@@ -167,7 +167,7 @@ rte_eth_bond_create(const char *name, uint8_t mode, uint8_t 
socket_id)
 
        ret = rte_vdev_init(name, devargs);
        if (ret)
-               return -ENOMEM;
+               return ret;
 
        ret = rte_eth_dev_get_port_by_name(name, &port_id);
        RTE_ASSERT(!ret);
-- 
2.7.4

Reply via email to