summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMahesh Bandewar <maheshb@google.com>2017-04-12 01:36:00 -0400
committerDavid S. Miller <davem@davemloft.net>2017-04-13 13:48:59 -0400
commitfb9eb899a6dc663e4a2deed9af2ac28f507d0ffb (patch)
tree82bd0507a063dacfeeb0512e9cc567c5381e5dfe
parentd4d49bc145e830fdcfdcfba9ef4b7db5d0b1f8a7 (diff)
bonding: handle link transition from FAIL to UP correctly
When link transitions from LINK_FAIL to LINK_UP, the commit phase is not called. This leads to an erroneous state causing slave-link state to get stuck in "going down" state while its speed and duplex are perfectly fine. This issue is a side-effect of splitting link-set into propose and commit phases introduced by de77ecd4ef02 ("bonding: improve link-status update in mii-monitoring") This patch fixes these issues by calling commit phase whenever link state change is proposed. Fixes: de77ecd4ef02 ("bonding: improve link-status update in mii-monitoring") Signed-off-by: Mahesh Bandewar <maheshb@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/bonding/bond_main.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index aba7352906a5..01e4a69af421 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -2064,6 +2064,7 @@ static int bond_miimon_inspect(struct bonding *bond)
2064 (bond->params.downdelay - slave->delay) * 2064 (bond->params.downdelay - slave->delay) *
2065 bond->params.miimon, 2065 bond->params.miimon,
2066 slave->dev->name); 2066 slave->dev->name);
2067 commit++;
2067 continue; 2068 continue;
2068 } 2069 }
2069 2070
@@ -2098,7 +2099,7 @@ static int bond_miimon_inspect(struct bonding *bond)
2098 (bond->params.updelay - slave->delay) * 2099 (bond->params.updelay - slave->delay) *
2099 bond->params.miimon, 2100 bond->params.miimon,
2100 slave->dev->name); 2101 slave->dev->name);
2101 2102 commit++;
2102 continue; 2103 continue;
2103 } 2104 }
2104 2105