numam-dpdk/drivers/net/bonding
Matan Azrad 59056833cc net/bonding: fix slave activation simultaneously
The bonding PMD decides to activate\deactivate its slaves according to
the slaves link statuses.
Thus, it registers to the LSC events of the slaves ports and
activates\deactivates them from its LSC callbacks called asynchronously
by the host thread when the slave link status is changed.

In addition, the bonding PMD uses the callback for slave activation
when it tries to start it, this operation is probably called by the
master thread.

Consequently, a slave may be activated in the same time by two
different threads and may cause a lot of optional errors, for example,
slave mempool recreation with the same name causes an error.

Synchronize the critical section in the LSC callback using a special
new spinlock.

Fixes: 414b202343 ("bonding: fix initial link status of slave")
Fixes: a45b288ef2 ("bond: support link status polling")
Cc: stable@dpdk.org

Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
2018-05-14 22:32:23 +01:00
..
Makefile ethdev: remove experimental flag of ports enumeration 2018-04-27 18:00:24 +01:00
meson.build ethdev: remove experimental flag of ports enumeration 2018-04-27 18:00:24 +01:00
rte_eth_bond_8023ad_private.h
rte_eth_bond_8023ad.c net/bonding: convert to dynamic logging 2018-04-27 18:00:59 +01:00
rte_eth_bond_8023ad.h
rte_eth_bond_alb.c net/bonding: convert to dynamic logging 2018-04-27 18:00:59 +01:00
rte_eth_bond_alb.h
rte_eth_bond_api.c net/bonding: support flow API 2018-04-27 17:34:42 +01:00
rte_eth_bond_args.c net/bonding: convert to dynamic logging 2018-04-27 18:00:59 +01:00
rte_eth_bond_flow.c ethdev: add shared counter to flow API 2018-04-27 18:00:57 +01:00
rte_eth_bond_pmd.c net/bonding: fix slave activation simultaneously 2018-05-14 22:32:23 +01:00
rte_eth_bond_private.h net/bonding: fix slave activation simultaneously 2018-05-14 22:32:23 +01:00
rte_eth_bond.h
rte_pmd_bond_version.map