diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2019-09-05 05:40:54 -0400 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2019-09-05 05:40:54 -0400 |
commit | 151a41014bff92f353263cadc051435dc9c3258e (patch) | |
tree | aa082a0745edd5b7051668f455dfc0ee1e4a9de0 /net/ipv6/addrconf.c | |
parent | ae0755b56da9db4190288155ea884331993ed51b (diff) | |
parent | 089cf7f6ecb266b6a4164919a2e69bd2f938374a (diff) |
Merge tag 'v5.3-rc7' into devel
Linux 5.3-rc7
Diffstat (limited to 'net/ipv6/addrconf.c')
-rw-r--r-- | net/ipv6/addrconf.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index dc73888c7859..6a576ff92c39 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c | |||
@@ -478,7 +478,7 @@ static struct inet6_dev *ipv6_find_idev(struct net_device *dev) | |||
478 | if (!idev) { | 478 | if (!idev) { |
479 | idev = ipv6_add_dev(dev); | 479 | idev = ipv6_add_dev(dev); |
480 | if (IS_ERR(idev)) | 480 | if (IS_ERR(idev)) |
481 | return NULL; | 481 | return idev; |
482 | } | 482 | } |
483 | 483 | ||
484 | if (dev->flags&IFF_UP) | 484 | if (dev->flags&IFF_UP) |
@@ -1045,7 +1045,8 @@ ipv6_add_addr(struct inet6_dev *idev, struct ifa6_config *cfg, | |||
1045 | int err = 0; | 1045 | int err = 0; |
1046 | 1046 | ||
1047 | if (addr_type == IPV6_ADDR_ANY || | 1047 | if (addr_type == IPV6_ADDR_ANY || |
1048 | addr_type & IPV6_ADDR_MULTICAST || | 1048 | (addr_type & IPV6_ADDR_MULTICAST && |
1049 | !(cfg->ifa_flags & IFA_F_MCAUTOJOIN)) || | ||
1049 | (!(idev->dev->flags & IFF_LOOPBACK) && | 1050 | (!(idev->dev->flags & IFF_LOOPBACK) && |
1050 | !netif_is_l3_master(idev->dev) && | 1051 | !netif_is_l3_master(idev->dev) && |
1051 | addr_type & IPV6_ADDR_LOOPBACK)) | 1052 | addr_type & IPV6_ADDR_LOOPBACK)) |
@@ -2465,8 +2466,8 @@ static struct inet6_dev *addrconf_add_dev(struct net_device *dev) | |||
2465 | ASSERT_RTNL(); | 2466 | ASSERT_RTNL(); |
2466 | 2467 | ||
2467 | idev = ipv6_find_idev(dev); | 2468 | idev = ipv6_find_idev(dev); |
2468 | if (!idev) | 2469 | if (IS_ERR(idev)) |
2469 | return ERR_PTR(-ENOBUFS); | 2470 | return idev; |
2470 | 2471 | ||
2471 | if (idev->cnf.disable_ipv6) | 2472 | if (idev->cnf.disable_ipv6) |
2472 | return ERR_PTR(-EACCES); | 2473 | return ERR_PTR(-EACCES); |
@@ -3158,7 +3159,7 @@ static void init_loopback(struct net_device *dev) | |||
3158 | ASSERT_RTNL(); | 3159 | ASSERT_RTNL(); |
3159 | 3160 | ||
3160 | idev = ipv6_find_idev(dev); | 3161 | idev = ipv6_find_idev(dev); |
3161 | if (!idev) { | 3162 | if (IS_ERR(idev)) { |
3162 | pr_debug("%s: add_dev failed\n", __func__); | 3163 | pr_debug("%s: add_dev failed\n", __func__); |
3163 | return; | 3164 | return; |
3164 | } | 3165 | } |
@@ -3373,7 +3374,7 @@ static void addrconf_sit_config(struct net_device *dev) | |||
3373 | */ | 3374 | */ |
3374 | 3375 | ||
3375 | idev = ipv6_find_idev(dev); | 3376 | idev = ipv6_find_idev(dev); |
3376 | if (!idev) { | 3377 | if (IS_ERR(idev)) { |
3377 | pr_debug("%s: add_dev failed\n", __func__); | 3378 | pr_debug("%s: add_dev failed\n", __func__); |
3378 | return; | 3379 | return; |
3379 | } | 3380 | } |
@@ -3398,7 +3399,7 @@ static void addrconf_gre_config(struct net_device *dev) | |||
3398 | ASSERT_RTNL(); | 3399 | ASSERT_RTNL(); |
3399 | 3400 | ||
3400 | idev = ipv6_find_idev(dev); | 3401 | idev = ipv6_find_idev(dev); |
3401 | if (!idev) { | 3402 | if (IS_ERR(idev)) { |
3402 | pr_debug("%s: add_dev failed\n", __func__); | 3403 | pr_debug("%s: add_dev failed\n", __func__); |
3403 | return; | 3404 | return; |
3404 | } | 3405 | } |
@@ -4772,8 +4773,8 @@ inet6_rtm_newaddr(struct sk_buff *skb, struct nlmsghdr *nlh, | |||
4772 | IFA_F_MCAUTOJOIN | IFA_F_OPTIMISTIC; | 4773 | IFA_F_MCAUTOJOIN | IFA_F_OPTIMISTIC; |
4773 | 4774 | ||
4774 | idev = ipv6_find_idev(dev); | 4775 | idev = ipv6_find_idev(dev); |
4775 | if (!idev) | 4776 | if (IS_ERR(idev)) |
4776 | return -ENOBUFS; | 4777 | return PTR_ERR(idev); |
4777 | 4778 | ||
4778 | if (!ipv6_allow_optimistic_dad(net, idev)) | 4779 | if (!ipv6_allow_optimistic_dad(net, idev)) |
4779 | cfg.ifa_flags &= ~IFA_F_OPTIMISTIC; | 4780 | cfg.ifa_flags &= ~IFA_F_OPTIMISTIC; |