Loading net/ipv6/addrconf.c +179 −173 Original line number Diff line number Diff line Loading @@ -81,7 +81,7 @@ #include <linux/random.h> #endif #include <asm/uaccess.h> #include <linux/uaccess.h> #include <asm/unaligned.h> #include <linux/proc_fs.h> Loading Loading @@ -249,8 +249,7 @@ static void addrconf_del_timer(struct inet6_ifaddr *ifp) __in6_ifa_put(ifp); } enum addrconf_timer_t { enum addrconf_timer_t { AC_NONE, AC_DAD, AC_RS, Loading @@ -270,7 +269,8 @@ static void addrconf_mod_timer(struct inet6_ifaddr *ifp, case AC_RS: ifp->timer.function = addrconf_rs_timer; break; default:; default: break; } ifp->timer.expires = jiffies + when; add_timer(&ifp->timer); Loading Loading @@ -325,7 +325,7 @@ void in6_dev_finish_destroy(struct inet6_dev *idev) #endif dev_put(dev); if (!idev->dead) { printk("Freeing alive inet6 device %p\n", idev); pr_warning("Freeing alive inet6 device %p\n", idev); return; } snmp6_free_dev(idev); Loading Loading @@ -441,8 +441,10 @@ static struct inet6_dev * ipv6_find_idev(struct net_device *dev) ASSERT_RTNL(); if ((idev = __in6_dev_get(dev)) == NULL) { if ((idev = ipv6_add_dev(dev)) == NULL) idev = __in6_dev_get(dev); if (!idev) { idev = ipv6_add_dev(dev); if (!idev) return NULL; } Loading Loading @@ -544,10 +546,10 @@ void inet6_ifa_finish_destroy(struct inet6_ifaddr *ifp) in6_dev_put(ifp->idev); if (del_timer(&ifp->timer)) printk("Timer is still running, when freeing ifa=%p\n", ifp); pr_notice("Timer is still running, when freeing ifa=%p\n", ifp); if (!ifp->dead) { printk("Freeing alive inet6 address %p\n", ifp); pr_warning("Freeing alive inet6 address %p\n", ifp); return; } dst_release(&ifp->rt->u.dst); Loading Loading @@ -1225,7 +1227,6 @@ int ipv6_dev_get_saddr(struct net *net, struct net_device *dst_dev, in6_ifa_put(hiscore->ifa); return 0; } EXPORT_SYMBOL(ipv6_dev_get_saddr); int ipv6_get_lladdr(struct net_device *dev, struct in6_addr *addr, Loading @@ -1235,7 +1236,8 @@ int ipv6_get_lladdr(struct net_device *dev, struct in6_addr *addr, int err = -EADDRNOTAVAIL; rcu_read_lock(); if ((idev = __in6_dev_get(dev)) != NULL) { idev = __in6_dev_get(dev); if (idev) { struct inet6_ifaddr *ifp; read_lock_bh(&idev->lock); Loading Loading @@ -1725,7 +1727,8 @@ static struct inet6_dev *addrconf_add_dev(struct net_device *dev) ASSERT_RTNL(); if ((idev = ipv6_find_idev(dev)) == NULL) idev = ipv6_find_idev(dev); if (!idev) return NULL; /* Add default multicast route */ Loading Loading @@ -2433,7 +2436,8 @@ static void addrconf_ip6_tnl_config(struct net_device *dev) ASSERT_RTNL(); if ((idev = addrconf_add_dev(dev)) == NULL) { idev = addrconf_add_dev(dev); if (!idev) { printk(KERN_DEBUG "init ip6-ip6: add_dev failed\n"); return; } Loading Loading @@ -2918,7 +2922,8 @@ static void addrconf_dad_completed(struct inet6_ifaddr *ifp) } } static void addrconf_dad_run(struct inet6_dev *idev) { static void addrconf_dad_run(struct inet6_dev *idev) { struct inet6_ifaddr *ifp; read_lock_bh(&idev->lock); Loading Loading @@ -3492,8 +3497,7 @@ static int inet6_fill_ifacaddr(struct sk_buff *skb, struct ifacaddr6 *ifaca, return nlmsg_end(skb, nlh); } enum addr_type_t { enum addr_type_t { UNICAST_ADDR, MULTICAST_ADDR, ANYCAST_ADDR, Loading Loading @@ -3592,7 +3596,8 @@ static int inet6_dump_addr(struct sk_buff *skb, struct netlink_callback *cb, if (idx > s_idx) s_ip_idx = 0; ip_idx = 0; if ((idev = __in6_dev_get(dev)) == NULL) idev = __in6_dev_get(dev); if (!idev) goto cont; if (in6_dump_addrs(idev, skb, cb, type, Loading Loading @@ -3659,12 +3664,14 @@ static int inet6_rtm_getaddr(struct sk_buff *in_skb, struct nlmsghdr* nlh, if (ifm->ifa_index) dev = __dev_get_by_index(net, ifm->ifa_index); if ((ifa = ipv6_get_ifaddr(net, addr, dev, 1)) == NULL) { ifa = ipv6_get_ifaddr(net, addr, dev, 1); if (!ifa) { err = -EADDRNOTAVAIL; goto errout; } if ((skb = nlmsg_new(inet6_ifaddr_msgsize(), GFP_KERNEL)) == NULL) { skb = nlmsg_new(inet6_ifaddr_msgsize(), GFP_KERNEL); if (!skb) { err = -ENOBUFS; goto errout_ifa; } Loading Loading @@ -4519,14 +4526,12 @@ int register_inet6addr_notifier(struct notifier_block *nb) { return atomic_notifier_chain_register(&inet6addr_chain, nb); } EXPORT_SYMBOL(register_inet6addr_notifier); int unregister_inet6addr_notifier(struct notifier_block *nb) { return atomic_notifier_chain_unregister(&inet6addr_chain, nb); } EXPORT_SYMBOL(unregister_inet6addr_notifier); /* Loading @@ -4537,9 +4542,10 @@ int __init addrconf_init(void) { int i, err; if ((err = ipv6_addr_label_init()) < 0) { printk(KERN_CRIT "IPv6 Addrconf: cannot initialize default policy table: %d.\n", err); err = ipv6_addr_label_init(); if (err < 0) { printk(KERN_CRIT "IPv6 Addrconf:" " cannot initialize default policy table: %d.\n", err); return err; } Loading Loading
net/ipv6/addrconf.c +179 −173 Original line number Diff line number Diff line Loading @@ -81,7 +81,7 @@ #include <linux/random.h> #endif #include <asm/uaccess.h> #include <linux/uaccess.h> #include <asm/unaligned.h> #include <linux/proc_fs.h> Loading Loading @@ -249,8 +249,7 @@ static void addrconf_del_timer(struct inet6_ifaddr *ifp) __in6_ifa_put(ifp); } enum addrconf_timer_t { enum addrconf_timer_t { AC_NONE, AC_DAD, AC_RS, Loading @@ -270,7 +269,8 @@ static void addrconf_mod_timer(struct inet6_ifaddr *ifp, case AC_RS: ifp->timer.function = addrconf_rs_timer; break; default:; default: break; } ifp->timer.expires = jiffies + when; add_timer(&ifp->timer); Loading Loading @@ -325,7 +325,7 @@ void in6_dev_finish_destroy(struct inet6_dev *idev) #endif dev_put(dev); if (!idev->dead) { printk("Freeing alive inet6 device %p\n", idev); pr_warning("Freeing alive inet6 device %p\n", idev); return; } snmp6_free_dev(idev); Loading Loading @@ -441,8 +441,10 @@ static struct inet6_dev * ipv6_find_idev(struct net_device *dev) ASSERT_RTNL(); if ((idev = __in6_dev_get(dev)) == NULL) { if ((idev = ipv6_add_dev(dev)) == NULL) idev = __in6_dev_get(dev); if (!idev) { idev = ipv6_add_dev(dev); if (!idev) return NULL; } Loading Loading @@ -544,10 +546,10 @@ void inet6_ifa_finish_destroy(struct inet6_ifaddr *ifp) in6_dev_put(ifp->idev); if (del_timer(&ifp->timer)) printk("Timer is still running, when freeing ifa=%p\n", ifp); pr_notice("Timer is still running, when freeing ifa=%p\n", ifp); if (!ifp->dead) { printk("Freeing alive inet6 address %p\n", ifp); pr_warning("Freeing alive inet6 address %p\n", ifp); return; } dst_release(&ifp->rt->u.dst); Loading Loading @@ -1225,7 +1227,6 @@ int ipv6_dev_get_saddr(struct net *net, struct net_device *dst_dev, in6_ifa_put(hiscore->ifa); return 0; } EXPORT_SYMBOL(ipv6_dev_get_saddr); int ipv6_get_lladdr(struct net_device *dev, struct in6_addr *addr, Loading @@ -1235,7 +1236,8 @@ int ipv6_get_lladdr(struct net_device *dev, struct in6_addr *addr, int err = -EADDRNOTAVAIL; rcu_read_lock(); if ((idev = __in6_dev_get(dev)) != NULL) { idev = __in6_dev_get(dev); if (idev) { struct inet6_ifaddr *ifp; read_lock_bh(&idev->lock); Loading Loading @@ -1725,7 +1727,8 @@ static struct inet6_dev *addrconf_add_dev(struct net_device *dev) ASSERT_RTNL(); if ((idev = ipv6_find_idev(dev)) == NULL) idev = ipv6_find_idev(dev); if (!idev) return NULL; /* Add default multicast route */ Loading Loading @@ -2433,7 +2436,8 @@ static void addrconf_ip6_tnl_config(struct net_device *dev) ASSERT_RTNL(); if ((idev = addrconf_add_dev(dev)) == NULL) { idev = addrconf_add_dev(dev); if (!idev) { printk(KERN_DEBUG "init ip6-ip6: add_dev failed\n"); return; } Loading Loading @@ -2918,7 +2922,8 @@ static void addrconf_dad_completed(struct inet6_ifaddr *ifp) } } static void addrconf_dad_run(struct inet6_dev *idev) { static void addrconf_dad_run(struct inet6_dev *idev) { struct inet6_ifaddr *ifp; read_lock_bh(&idev->lock); Loading Loading @@ -3492,8 +3497,7 @@ static int inet6_fill_ifacaddr(struct sk_buff *skb, struct ifacaddr6 *ifaca, return nlmsg_end(skb, nlh); } enum addr_type_t { enum addr_type_t { UNICAST_ADDR, MULTICAST_ADDR, ANYCAST_ADDR, Loading Loading @@ -3592,7 +3596,8 @@ static int inet6_dump_addr(struct sk_buff *skb, struct netlink_callback *cb, if (idx > s_idx) s_ip_idx = 0; ip_idx = 0; if ((idev = __in6_dev_get(dev)) == NULL) idev = __in6_dev_get(dev); if (!idev) goto cont; if (in6_dump_addrs(idev, skb, cb, type, Loading Loading @@ -3659,12 +3664,14 @@ static int inet6_rtm_getaddr(struct sk_buff *in_skb, struct nlmsghdr* nlh, if (ifm->ifa_index) dev = __dev_get_by_index(net, ifm->ifa_index); if ((ifa = ipv6_get_ifaddr(net, addr, dev, 1)) == NULL) { ifa = ipv6_get_ifaddr(net, addr, dev, 1); if (!ifa) { err = -EADDRNOTAVAIL; goto errout; } if ((skb = nlmsg_new(inet6_ifaddr_msgsize(), GFP_KERNEL)) == NULL) { skb = nlmsg_new(inet6_ifaddr_msgsize(), GFP_KERNEL); if (!skb) { err = -ENOBUFS; goto errout_ifa; } Loading Loading @@ -4519,14 +4526,12 @@ int register_inet6addr_notifier(struct notifier_block *nb) { return atomic_notifier_chain_register(&inet6addr_chain, nb); } EXPORT_SYMBOL(register_inet6addr_notifier); int unregister_inet6addr_notifier(struct notifier_block *nb) { return atomic_notifier_chain_unregister(&inet6addr_chain, nb); } EXPORT_SYMBOL(unregister_inet6addr_notifier); /* Loading @@ -4537,9 +4542,10 @@ int __init addrconf_init(void) { int i, err; if ((err = ipv6_addr_label_init()) < 0) { printk(KERN_CRIT "IPv6 Addrconf: cannot initialize default policy table: %d.\n", err); err = ipv6_addr_label_init(); if (err < 0) { printk(KERN_CRIT "IPv6 Addrconf:" " cannot initialize default policy table: %d.\n", err); return err; } Loading