]> git.baikalelectronics.ru Git - kernel.git/commit
bonding: speed/duplex update at NETDEV_UP event
authorMahesh Bandewar <maheshb@google.com>
Thu, 28 Sep 2017 01:03:49 +0000 (18:03 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 3 Oct 2017 21:32:25 +0000 (14:32 -0700)
commite57b81ca321764bdc81a72bf02f90e0361984bb8
tree8fe0b6d00f145536109bc5c1416d41daf90d86ab
parentbf7f34e4ad776e44a173e22c7470b749c2c8e9c7
bonding: speed/duplex update at NETDEV_UP event

Some NIC drivers don't have correct speed/duplex settings at the
time they send NETDEV_UP notification and that messes up the
bonding state. Especially 802.3ad mode which is very sensitive
to these settings. In the current implementation we invoke
bond_update_speed_duplex() when we receive NETDEV_UP, however,
ignore the return value. If the values we get are invalid
(UNKNOWN), then slave gets removed from the aggregator with
speed and duplex set to UNKNOWN while link is still marked as UP.

This patch fixes this scenario. Also 802.3ad mode is sensitive to
these conditions while other modes are not, so making sure that it
doesn't change the behavior for other modes.

Signed-off-by: Mahesh Bandewar <maheshb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bonding/bond_main.c