diff options
author | David S. Miller <davem@davemloft.net> | 2014-01-14 17:37:09 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-01-14 17:42:42 -0500 |
commit | 0a379e21c503b2ff66b44d588df9f231e9b0b9ca (patch) | |
tree | 22b875fcf4b67fcd007726f00c5fc1748ce985d0 /net/ipv6 | |
parent | a49da8811e71c5355b52c65ee32976741d5834cd (diff) | |
parent | fdc3452cd2c7b2bfe0f378f92123f4f9a98fa2bd (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Diffstat (limited to 'net/ipv6')
-rw-r--r-- | net/ipv6/addrconf.c | 6 | ||||
-rw-r--r-- | net/ipv6/ip6_vti.c | 6 |
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) | |||
731 | static inline int vti6_dev_init_gen(struct net_device *dev) | 731 | static 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 | ||