diff options
Diffstat (limited to 'net/ipv6')
-rw-r--r-- | net/ipv6/addrconf.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index 7d7d4b17c0f0..68e5809a2153 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c | |||
@@ -155,8 +155,8 @@ static void ipv6_ifa_notify(int event, struct inet6_ifaddr *ifa); | |||
155 | 155 | ||
156 | static void inet6_prefix_notify(int event, struct inet6_dev *idev, | 156 | static void inet6_prefix_notify(int event, struct inet6_dev *idev, |
157 | struct prefix_info *pinfo); | 157 | struct prefix_info *pinfo); |
158 | static int ipv6_chk_same_addr(struct net *net, const struct in6_addr *addr, | 158 | static bool ipv6_chk_same_addr(struct net *net, const struct in6_addr *addr, |
159 | struct net_device *dev); | 159 | struct net_device *dev); |
160 | 160 | ||
161 | static ATOMIC_NOTIFIER_HEAD(inet6addr_chain); | 161 | static ATOMIC_NOTIFIER_HEAD(inet6addr_chain); |
162 | 162 | ||
@@ -1295,23 +1295,22 @@ int ipv6_chk_addr(struct net *net, struct in6_addr *addr, | |||
1295 | } | 1295 | } |
1296 | EXPORT_SYMBOL(ipv6_chk_addr); | 1296 | EXPORT_SYMBOL(ipv6_chk_addr); |
1297 | 1297 | ||
1298 | static | 1298 | static bool ipv6_chk_same_addr(struct net *net, const struct in6_addr *addr, |
1299 | int ipv6_chk_same_addr(struct net *net, const struct in6_addr *addr, | 1299 | struct net_device *dev) |
1300 | struct net_device *dev) | ||
1301 | { | 1300 | { |
1301 | unsigned int hash = ipv6_addr_hash(addr); | ||
1302 | struct inet6_ifaddr *ifp; | 1302 | struct inet6_ifaddr *ifp; |
1303 | struct hlist_node *node; | 1303 | struct hlist_node *node; |
1304 | unsigned int hash = ipv6_addr_hash(addr); | ||
1305 | 1304 | ||
1306 | hlist_for_each_entry(ifp, node, &inet6_addr_lst[hash], addr_lst) { | 1305 | hlist_for_each_entry(ifp, node, &inet6_addr_lst[hash], addr_lst) { |
1307 | if (!net_eq(dev_net(ifp->idev->dev), net)) | 1306 | if (!net_eq(dev_net(ifp->idev->dev), net)) |
1308 | continue; | 1307 | continue; |
1309 | if (ipv6_addr_equal(&ifp->addr, addr)) { | 1308 | if (ipv6_addr_equal(&ifp->addr, addr)) { |
1310 | if (dev == NULL || ifp->idev->dev == dev) | 1309 | if (dev == NULL || ifp->idev->dev == dev) |
1311 | break; | 1310 | return true; |
1312 | } | 1311 | } |
1313 | } | 1312 | } |
1314 | return ifp != NULL; | 1313 | return false; |
1315 | } | 1314 | } |
1316 | 1315 | ||
1317 | int ipv6_chk_prefix(struct in6_addr *addr, struct net_device *dev) | 1316 | int ipv6_chk_prefix(struct in6_addr *addr, struct net_device *dev) |