diff options
author | David S. Miller <davem@davemloft.net> | 2022-09-05 10:07:05 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2022-09-05 10:07:05 +0100 |
commit | 060ad609fa38e9a62fd5f79d0aaf83f94e6f0e36 (patch) | |
tree | b2704a346a95a268d4e9c45f7c7bc5cbdeed11a1 /net | |
parent | c90714017cb3f197e71c7ff1317335b96d4d19e8 (diff) | |
parent | 592335a4164c3c41f57967223a1e1efe3a0c6eb3 (diff) | |
download | linux-060ad609fa38e9a62fd5f79d0aaf83f94e6f0e36.tar.gz |
Merge branch 'bonding-fixes'
Hangbin Liu says:
====================
bonding: fix lladdr finding and confirmation
This patch set fixed 3 issues when setting lladdr as bonding IPv6 target.
Please see each patch for the details.
v2: separate the patch to 3 parts
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv6/addrconf.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index e15f64f22fa8..10ce86bf228e 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -3557,11 +3557,15 @@ static int addrconf_notify(struct notifier_block *this, unsigned long event, fallthrough; case NETDEV_UP: case NETDEV_CHANGE: - if (dev->flags & IFF_SLAVE) + if (idev && idev->cnf.disable_ipv6) break; - if (idev && idev->cnf.disable_ipv6) + if (dev->flags & IFF_SLAVE) { + if (event == NETDEV_UP && !IS_ERR_OR_NULL(idev) && + dev->flags & IFF_UP && dev->flags & IFF_MULTICAST) + ipv6_mc_up(idev); break; + } if (event == NETDEV_UP) { /* restore routes for permanent addresses */ |