324d6577ba
Adding the bond device as its own slave should be forbidden. This
will cause a recursive endless loop in many subsequent operations,
and eventually lead to coredump.
This problem was found in testpmd, the related logs are as follows:
testpmd> create bonded device 1 0
Created new bonded device net_bonding_testpmd_0 on (port 4).
testpmd> add bonding slave 4 4
Segmentation fault (core dumped)
The call stack is as follows:
0x000000000064eb90 in rte_eth_dev_info_get ()
0x00000000006df4b4 in bond_ethdev_info ()
0x000000000064eb90 in rte_eth_dev_info_get ()
0x00000000006df4b4 in bond_ethdev_info ()
0x000000000064eb90 in rte_eth_dev_info_get ()
0x0000000000564e58 in eth_dev_info_get_print_err ()
0x000000000055e8a4 in init_port_config ()
0x000000000052730c in cmd_add_bonding_slave_parsed ()
0x0000000000646f60 in cmdline_parse ()
0x0000000000645e08 in cmdline_valid_buffer ()
0x000000000064956c in rdline_char_in ()
0x0000000000645ee0 in cmdline_in ()
0x00000000006460a4 in cmdline_interact ()
0x0000000000531904 in prompt ()
0x000000000051cca8 in main ()
Fixes:
|
||
---|---|---|
.. | ||
eth_bond_8023ad_private.h | ||
eth_bond_private.h | ||
meson.build | ||
rte_eth_bond_8023ad.c | ||
rte_eth_bond_8023ad.h | ||
rte_eth_bond_alb.c | ||
rte_eth_bond_alb.h | ||
rte_eth_bond_api.c | ||
rte_eth_bond_args.c | ||
rte_eth_bond_flow.c | ||
rte_eth_bond_pmd.c | ||
rte_eth_bond.h | ||
version.map |