Skip to content

Commit 3348be7

Browse files
liuhangbinkuba-moo
authored andcommitted
bonding: handle BOND_LINK_FAIL, BOND_LINK_BACK as valid link states
Before the fixed commit, we check slave->new_link during commit state, which values are only BOND_LINK_{NOCHANGE, UP, DOWN}. After the commit, we start using slave->link_new_state, which state also could be BOND_LINK_{FAIL, BACK}. For example, when we set updelay/downdelay, after a failover, the slave->link_new_state could be set to BOND_LINK_{FAIL, BACK} in bond_miimon_inspect(). And later in bond_miimon_commit(), it will treat it as invalid and print an error, which would cause confusion for users. [ 106.440254] bond0: (slave veth2): link status down for interface, disabling it in 200 ms [ 106.440265] bond0: (slave veth2): invalid new link 1 on slave [ 106.648276] bond0: (slave veth2): link status definitely down, disabling slave [ 107.480271] bond0: (slave veth2): link status up, enabling it in 200 ms [ 107.480288] bond0: (slave veth2): invalid new link 3 on slave [ 107.688302] bond0: (slave veth2): link status definitely up, 10000 Mbps full duplex Let's handle BOND_LINK_{FAIL, BACK} as valid link states. Fixes: 1899bb3 ("bonding: fix state transition issue in link monitoring") Signed-off-by: Hangbin Liu <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
1 parent 45fc134 commit 3348be7

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

drivers/net/bonding/bond_main.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2801,8 +2801,14 @@ static void bond_miimon_commit(struct bonding *bond)
28012801

28022802
continue;
28032803

2804+
case BOND_LINK_FAIL:
2805+
case BOND_LINK_BACK:
2806+
slave_dbg(bond->dev, slave->dev, "link_new_state %d on slave\n",
2807+
slave->link_new_state);
2808+
continue;
2809+
28042810
default:
2805-
slave_err(bond->dev, slave->dev, "invalid new link %d on slave\n",
2811+
slave_err(bond->dev, slave->dev, "invalid link_new_state %d on slave\n",
28062812
slave->link_new_state);
28072813
bond_propose_link_state(slave, BOND_LINK_NOCHANGE);
28082814

0 commit comments

Comments
 (0)