From 5704fa69dbed2e57dde9b490b586060e955851bc Mon Sep 17 00:00:00 2001 From: "Denis V. Lunev" Date: Wed, 16 Apr 2008 02:02:18 -0700 Subject: [PATCH] --- yaml --- r: 90793 b: refs/heads/master c: f3005d7f4abe03ad41af33b1548602cd086d86a2 h: refs/heads/master i: 90791: 4722686c9cd131424aa5714f2ab4fa53ab3e8b60 v: v3 --- [refs] | 2 +- trunk/include/linux/netdevice.h | 3 ++- trunk/net/core/dev.c | 2 ++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 66eeadec48c8..d081c5f30ebe 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3661a910836a509be65afc3c1e512d900e1280f9 +refs/heads/master: f3005d7f4abe03ad41af33b1548602cd086d86a2 diff --git a/trunk/include/linux/netdevice.h b/trunk/include/linux/netdevice.h index 8b17ed40dea2..7c1d4466583b 100644 --- a/trunk/include/linux/netdevice.h +++ b/trunk/include/linux/netdevice.h @@ -758,7 +758,8 @@ static inline void dev_net_set(struct net_device *dev, struct net *net) { #ifdef CONFIG_NET_NS - dev->nd_net = net; + release_net(dev->nd_net); + dev->nd_net = hold_net(net); #endif } diff --git a/trunk/net/core/dev.c b/trunk/net/core/dev.c index 7aa01125287e..77530e9a34fc 100644 --- a/trunk/net/core/dev.c +++ b/trunk/net/core/dev.c @@ -4042,6 +4042,8 @@ EXPORT_SYMBOL(alloc_netdev_mq); */ void free_netdev(struct net_device *dev) { + release_net(dev_net(dev)); + /* Compatibility with error handling in drivers */ if (dev->reg_state == NETREG_UNINITIALIZED) { kfree((char *)dev - dev->padded);