diff options
Diffstat (limited to 'include/net/netns/generic.h')
| -rw-r--r-- | include/net/netns/generic.h | 14 | 
1 files changed, 9 insertions, 5 deletions
diff --git a/include/net/netns/generic.h b/include/net/netns/generic.h index 70e158551704..f15daaa89385 100644 --- a/include/net/netns/generic.h +++ b/include/net/netns/generic.h @@ -25,20 +25,24 @@   */  struct net_generic { -	unsigned int len; -	struct rcu_head rcu; +	union { +		struct { +			unsigned int len; +			struct rcu_head rcu; +		} s; -	void *ptr[0]; +		void *ptr[0]; +	};  }; -static inline void *net_generic(const struct net *net, int id) +static inline void *net_generic(const struct net *net, unsigned int id)  {  	struct net_generic *ng;  	void *ptr;  	rcu_read_lock();  	ng = rcu_dereference(net->gen); -	ptr = ng->ptr[id - 1]; +	ptr = ng->ptr[id];  	rcu_read_unlock();  	return ptr;  | 
