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