Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

bonding: fix enslavement slave link notifications

Currently, link notifications are not sent by
bond_set_slave_link_state() upon enslavement if
the slave is enslaved when up.

This happens because slave->link default init value
is 0, which is the same as BOND_LINK_UP, resulting
in bond_set_slave_link_state() ignoring this transition.

This patch sets the default value of slave->link to
BOND_LINK_NOCHANGE, assuring it will count as a state
transition and thus trigger notification logic.

Signed-off-by: Aviv Heller <avivh@mellanox.com>
Reviewed-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Aviv Heller and committed by
David S. Miller
a30b0168 2609af19

+1
+1
drivers/net/bonding/bond_main.c
··· 1584 1584 } 1585 1585 1586 1586 /* check for initial state */ 1587 + new_slave->link = BOND_LINK_NOCHANGE; 1587 1588 if (bond->params.miimon) { 1588 1589 if (bond_check_dev_link(bond, slave_dev, 0) == BMSR_LSTATUS) { 1589 1590 if (bond->params.updelay) {