aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2014-01-14 17:37:09 -0500
committerDavid S. Miller <davem@davemloft.net>2014-01-14 17:42:42 -0500
commit0a379e21c503b2ff66b44d588df9f231e9b0b9ca (patch)
tree22b875fcf4b67fcd007726f00c5fc1748ce985d0 /net/ipv6
parenta49da8811e71c5355b52c65ee32976741d5834cd (diff)
parentfdc3452cd2c7b2bfe0f378f92123f4f9a98fa2bd (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Diffstat (limited to 'net/ipv6')
-rw-r--r--net/ipv6/addrconf.c6
-rw-r--r--net/ipv6/ip6_vti.c6
2 files changed, 10 insertions, 2 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index a9fa6c1feed5..b0cd122e5fb4 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -2529,7 +2529,8 @@ static void add_addr(struct inet6_dev *idev, const struct in6_addr *addr,
2529 struct inet6_ifaddr *ifp; 2529 struct inet6_ifaddr *ifp;
2530 2530
2531 ifp = ipv6_add_addr(idev, addr, NULL, plen, 2531 ifp = ipv6_add_addr(idev, addr, NULL, plen,
2532 scope, IFA_F_PERMANENT, 0, 0); 2532 scope, IFA_F_PERMANENT,
2533 INFINITY_LIFE_TIME, INFINITY_LIFE_TIME);
2533 if (!IS_ERR(ifp)) { 2534 if (!IS_ERR(ifp)) {
2534 spin_lock_bh(&ifp->lock); 2535 spin_lock_bh(&ifp->lock);
2535 ifp->flags &= ~IFA_F_TENTATIVE; 2536 ifp->flags &= ~IFA_F_TENTATIVE;
@@ -2657,7 +2658,8 @@ static void addrconf_add_linklocal(struct inet6_dev *idev, const struct in6_addr
2657#endif 2658#endif
2658 2659
2659 2660
2660 ifp = ipv6_add_addr(idev, addr, NULL, 64, IFA_LINK, addr_flags, 0, 0); 2661 ifp = ipv6_add_addr(idev, addr, NULL, 64, IFA_LINK, addr_flags,
2662 INFINITY_LIFE_TIME, INFINITY_LIFE_TIME);
2661 if (!IS_ERR(ifp)) { 2663 if (!IS_ERR(ifp)) {
2662 addrconf_prefix_route(&ifp->addr, ifp->prefix_len, idev->dev, 0, 0); 2664 addrconf_prefix_route(&ifp->addr, ifp->prefix_len, idev->dev, 0, 0);
2663 addrconf_dad_start(ifp); 2665 addrconf_dad_start(ifp);
diff --git a/net/ipv6/ip6_vti.c b/net/ipv6/ip6_vti.c
index b50acd5e75d2..2d19272b8cee 100644
--- a/net/ipv6/ip6_vti.c
+++ b/net/ipv6/ip6_vti.c
@@ -731,12 +731,18 @@ static void vti6_dev_setup(struct net_device *dev)
731static inline int vti6_dev_init_gen(struct net_device *dev) 731static inline int vti6_dev_init_gen(struct net_device *dev)
732{ 732{
733 struct ip6_tnl *t = netdev_priv(dev); 733 struct ip6_tnl *t = netdev_priv(dev);
734 int i;
734 735
735 t->dev = dev; 736 t->dev = dev;
736 t->net = dev_net(dev); 737 t->net = dev_net(dev);
737 dev->tstats = alloc_percpu(struct pcpu_sw_netstats); 738 dev->tstats = alloc_percpu(struct pcpu_sw_netstats);
738 if (!dev->tstats) 739 if (!dev->tstats)
739 return -ENOMEM; 740 return -ENOMEM;
741 for_each_possible_cpu(i) {
742 struct pcpu_sw_netstats *stats;
743 stats = per_cpu_ptr(dev->tstats, i);
744 u64_stats_init(&stats->syncp);
745 }
740 return 0; 746 return 0;
741} 747}
742 748