|
@@ -2190,6 +2190,15 @@ static void bond_miimon_commit(struct bonding *bond)
|
|
|
bond_for_each_slave(bond, slave, iter) {
|
|
bond_for_each_slave(bond, slave, iter) {
|
|
|
switch (slave->new_link) {
|
|
switch (slave->new_link) {
|
|
|
case BOND_LINK_NOCHANGE:
|
|
case BOND_LINK_NOCHANGE:
|
|
|
|
|
+ /* For 802.3ad mode, check current slave speed and
|
|
|
|
|
+ * duplex again in case its port was disabled after
|
|
|
|
|
+ * invalid speed/duplex reporting but recovered before
|
|
|
|
|
+ * link monitoring could make a decision on the actual
|
|
|
|
|
+ * link status
|
|
|
|
|
+ */
|
|
|
|
|
+ if (BOND_MODE(bond) == BOND_MODE_8023AD &&
|
|
|
|
|
+ slave->link == BOND_LINK_UP)
|
|
|
|
|
+ bond_3ad_adapter_speed_duplex_changed(slave);
|
|
|
continue;
|
|
continue;
|
|
|
|
|
|
|
|
case BOND_LINK_UP:
|
|
case BOND_LINK_UP:
|