diff options
Diffstat (limited to 'net/ipv6/addrconf.c')
| -rw-r--r-- | net/ipv6/addrconf.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index 8eeec6eb2bd3..72ffd3d760ff 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c | |||
| @@ -1165,7 +1165,8 @@ check_cleanup_prefix_route(struct inet6_ifaddr *ifp, unsigned long *expires) | |||
| 1165 | list_for_each_entry(ifa, &idev->addr_list, if_list) { | 1165 | list_for_each_entry(ifa, &idev->addr_list, if_list) { |
| 1166 | if (ifa == ifp) | 1166 | if (ifa == ifp) |
| 1167 | continue; | 1167 | continue; |
| 1168 | if (!ipv6_prefix_equal(&ifa->addr, &ifp->addr, | 1168 | if (ifa->prefix_len != ifp->prefix_len || |
| 1169 | !ipv6_prefix_equal(&ifa->addr, &ifp->addr, | ||
| 1169 | ifp->prefix_len)) | 1170 | ifp->prefix_len)) |
| 1170 | continue; | 1171 | continue; |
| 1171 | if (ifa->flags & (IFA_F_PERMANENT | IFA_F_NOPREFIXROUTE)) | 1172 | if (ifa->flags & (IFA_F_PERMANENT | IFA_F_NOPREFIXROUTE)) |
| @@ -3495,8 +3496,8 @@ static int addrconf_notify(struct notifier_block *this, unsigned long event, | |||
| 3495 | 3496 | ||
| 3496 | if (!addrconf_link_ready(dev)) { | 3497 | if (!addrconf_link_ready(dev)) { |
| 3497 | /* device is not ready yet. */ | 3498 | /* device is not ready yet. */ |
| 3498 | pr_info("ADDRCONF(NETDEV_UP): %s: link is not ready\n", | 3499 | pr_debug("ADDRCONF(NETDEV_UP): %s: link is not ready\n", |
| 3499 | dev->name); | 3500 | dev->name); |
| 3500 | break; | 3501 | break; |
| 3501 | } | 3502 | } |
| 3502 | 3503 | ||
| @@ -5120,6 +5121,8 @@ static int inet6_dump_addr(struct sk_buff *skb, struct netlink_callback *cb, | |||
| 5120 | if (idev) { | 5121 | if (idev) { |
| 5121 | err = in6_dump_addrs(idev, skb, cb, s_ip_idx, | 5122 | err = in6_dump_addrs(idev, skb, cb, s_ip_idx, |
| 5122 | &fillargs); | 5123 | &fillargs); |
| 5124 | if (err > 0) | ||
| 5125 | err = 0; | ||
| 5123 | } | 5126 | } |
| 5124 | goto put_tgt_net; | 5127 | goto put_tgt_net; |
| 5125 | } | 5128 | } |
| @@ -5154,7 +5157,7 @@ put_tgt_net: | |||
| 5154 | if (fillargs.netnsid >= 0) | 5157 | if (fillargs.netnsid >= 0) |
| 5155 | put_net(tgt_net); | 5158 | put_net(tgt_net); |
| 5156 | 5159 | ||
| 5157 | return err < 0 ? err : skb->len; | 5160 | return skb->len ? : err; |
| 5158 | } | 5161 | } |
| 5159 | 5162 | ||
| 5160 | static int inet6_dump_ifaddr(struct sk_buff *skb, struct netlink_callback *cb) | 5163 | static int inet6_dump_ifaddr(struct sk_buff *skb, struct netlink_callback *cb) |
