Re: [PATCH net] bonding: set default miimon value for non-arp modes if not set

From: David Miller
Date: Sat Jul 21 2018 - 13:26:25 EST


From: Jarod Wilson <jarod@xxxxxxxxxx>
Date: Wed, 18 Jul 2018 14:49:36 -0400

> For some time now, if you load the bonding driver and configure bond
> parameters via sysfs using minimal config options, such as specifying
> nothing but the mode, relying on defaults for everything else, modes
> that cannot use arp monitoring (802.3ad, balance-tlb, balance-alb) all
> wind up with both arp_interval=0 (as it should be) and miimon=0, which
> means the miimon monitor thread never actually runs. This is particularly
> problematic for 802.3ad.
...
> I believe this became a major issue as of commit 4d2c0cda0744, which for
> 802.3ad bonds, sets slave->link = BOND_LINK_DOWN, with a comment about
> relying on link monitoring via miimon to set it correctly, but since the
> miimon work queue never runs, the link just stays marked down.
>
> If we simply tweak bond_option_mode_set() slightly, we can check for the
> non-arp modes having no miimon value set, and insert BOND_DEFAULT_MIIMON,
> which gets things back in full working order. This problem exists as far
> back as 4.14, and might be worth fixing in all stable trees since, though
> the work-around is to simply specify an miimon value yourself.
>
> Reported-by: Bob Ball <ball@xxxxxxxxx>
...
> Signed-off-by: Jarod Wilson <jarod@xxxxxxxxxx>

Applied and queued up for -stable, thank you.