]> Pileus Git - ~andy/linux/blobdiff - drivers/net/loopback.c
net: Explicitly initialize u64_stats_sync structures for lockdep
[~andy/linux] / drivers / net / loopback.c
index fcbf680c3e62f73af4933896641045de34f1f68c..ac24c27b4b2da10195b965cd3cfe66ceb8791c00 100644 (file)
@@ -137,15 +137,22 @@ static const struct ethtool_ops loopback_ethtool_ops = {
 
 static int loopback_dev_init(struct net_device *dev)
 {
+       int i;
        dev->lstats = alloc_percpu(struct pcpu_lstats);
        if (!dev->lstats)
                return -ENOMEM;
 
+       for_each_possible_cpu(i) {
+               struct pcpu_lstats *lb_stats;
+               lb_stats = per_cpu_ptr(dev->lstats, i);
+               u64_stats_init(&lb_stats->syncp);
+       }
        return 0;
 }
 
 static void loopback_dev_free(struct net_device *dev)
 {
+       dev_net(dev)->loopback_dev = NULL;
        free_percpu(dev->lstats);
        free_netdev(dev);
 }