aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/net/loopback.c
diff options
context:
space:
mode:
authorMichal Marek <mmarek@suse.cz>2014-01-02 14:02:06 +0100
committerMichal Marek <mmarek@suse.cz>2014-01-02 14:02:06 +0100
commit37e2c2a775fc887acd1432908478dfd532f7f00f (patch)
treee51ebc699d8e262fd47e0913be6a711cb1a7b565 /drivers/net/loopback.c
parentdeb-pkg: Inhibit initramfs builders if CONFIG_BLK_DEV_INITRD is not set (diff)
parentLinux 3.13-rc1 (diff)
downloadwireguard-linux-37e2c2a775fc887acd1432908478dfd532f7f00f.tar.xz
wireguard-linux-37e2c2a775fc887acd1432908478dfd532f7f00f.zip
Merge commit v3.13-rc1 into kbuild/misc
Diffstat (limited to 'drivers/net/loopback.c')
-rw-r--r--drivers/net/loopback.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/loopback.c b/drivers/net/loopback.c
index fcbf680c3e62..ac24c27b4b2d 100644
--- a/drivers/net/loopback.c
+++ b/drivers/net/loopback.c
@@ -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);
}