diff options
| -rw-r--r-- | include/net/net_namespace.h | 1 | ||||
| -rw-r--r-- | net/core/dev.c | 4 | 
2 files changed, 3 insertions, 2 deletions
diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h index ae1cd6c9ba5..6dc3db3466b 100644 --- a/include/net/net_namespace.h +++ b/include/net/net_namespace.h @@ -66,6 +66,7 @@ struct net {  	struct hlist_head 	*dev_name_head;  	struct hlist_head	*dev_index_head;  	unsigned int		dev_base_seq;	/* protected by rtnl_mutex */ +	int			ifindex;  	/* core fib_rules */  	struct list_head	rules_ops; diff --git a/net/core/dev.c b/net/core/dev.c index 3ca300d8527..1f06df8d10a 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -5221,12 +5221,12 @@ int dev_ioctl(struct net *net, unsigned int cmd, void __user *arg)   */  static int dev_new_index(struct net *net)  { -	static int ifindex; +	int ifindex = net->ifindex;  	for (;;) {  		if (++ifindex <= 0)  			ifindex = 1;  		if (!__dev_get_by_index(net, ifindex)) -			return ifindex; +			return net->ifindex = ifindex;  	}  }  |