summaryrefslogtreecommitdiffstats
path: root/drivers/net/bonding/bond_main.c
diff options
context:
space:
mode:
authorMahesh Bandewar2017-04-12 07:36:00 +0200
committerDavid S. Miller2017-04-13 19:48:59 +0200
commitfb9eb899a6dc663e4a2deed9af2ac28f507d0ffb (patch)
tree82bd0507a063dacfeeb0512e9cc567c5381e5dfe /drivers/net/bonding/bond_main.c
parentnet: dwc-xlgmac: add the initial ethtool support (diff)
downloadkernel-qcow2-linux-fb9eb899a6dc663e4a2deed9af2ac28f507d0ffb.tar.gz
kernel-qcow2-linux-fb9eb899a6dc663e4a2deed9af2ac28f507d0ffb.tar.xz
kernel-qcow2-linux-fb9eb899a6dc663e4a2deed9af2ac28f507d0ffb.zip
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>
Diffstat (limited to 'drivers/net/bonding/bond_main.c')
-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)
(bond->params.downdelay - slave->delay) *
bond->params.miimon,
slave->dev->name);
+ commit++;
continue;
}
@@ -2098,7 +2099,7 @@ static int bond_miimon_inspect(struct bonding *bond)
(bond->params.updelay - slave->delay) *
bond->params.miimon,
slave->dev->name);
-
+ commit++;
continue;
}