ip6_gre: use netdev_alloc_pcpu_stats()
The code there just open-codes the same, so use the provided macro instead. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
0e2d686530
commit
26349c71b4
|
@ -1246,7 +1246,6 @@ static void ip6gre_tunnel_setup(struct net_device *dev)
|
||||||
static int ip6gre_tunnel_init(struct net_device *dev)
|
static int ip6gre_tunnel_init(struct net_device *dev)
|
||||||
{
|
{
|
||||||
struct ip6_tnl *tunnel;
|
struct ip6_tnl *tunnel;
|
||||||
int i;
|
|
||||||
|
|
||||||
tunnel = netdev_priv(dev);
|
tunnel = netdev_priv(dev);
|
||||||
|
|
||||||
|
@ -1260,16 +1259,10 @@ static int ip6gre_tunnel_init(struct net_device *dev)
|
||||||
if (ipv6_addr_any(&tunnel->parms.raddr))
|
if (ipv6_addr_any(&tunnel->parms.raddr))
|
||||||
dev->header_ops = &ip6gre_header_ops;
|
dev->header_ops = &ip6gre_header_ops;
|
||||||
|
|
||||||
dev->tstats = alloc_percpu(struct pcpu_sw_netstats);
|
dev->tstats = netdev_alloc_pcpu_stats(struct pcpu_sw_netstats);
|
||||||
if (!dev->tstats)
|
if (!dev->tstats)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
for_each_possible_cpu(i) {
|
|
||||||
struct pcpu_sw_netstats *ip6gre_tunnel_stats;
|
|
||||||
ip6gre_tunnel_stats = per_cpu_ptr(dev->tstats, i);
|
|
||||||
u64_stats_init(&ip6gre_tunnel_stats->syncp);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue