]> Pileus Git - ~andy/linux/blobdiff - net/ipv4/ip_tunnel.c
net: Explicitly initialize u64_stats_sync structures for lockdep
[~andy/linux] / net / ipv4 / ip_tunnel.c
index 63a6d6d6b87581d3ac3bda52cab5833f3cb169ab..caf01176a5e49774555b9c4dea5809e4f57cce19 100644 (file)
@@ -976,13 +976,19 @@ int ip_tunnel_init(struct net_device *dev)
 {
        struct ip_tunnel *tunnel = netdev_priv(dev);
        struct iphdr *iph = &tunnel->parms.iph;
-       int err;
+       int i, err;
 
        dev->destructor = ip_tunnel_dev_free;
        dev->tstats = alloc_percpu(struct pcpu_tstats);
        if (!dev->tstats)
                return -ENOMEM;
 
+       for_each_possible_cpu(i) {
+               struct pcpu_tstats *ipt_stats;
+               ipt_stats = per_cpu_ptr(dev->tstats, i);
+               u64_stats_init(&ipt_stats->syncp);
+       }
+
        err = gro_cells_init(&tunnel->gro_cells, dev);
        if (err) {
                free_percpu(dev->tstats);