generic.h (e5451c8f8330e03ad3cfa16048b4daf961af434f) generic.h (c7d03a00b56fc23c3a01a8353789ad257363e281)
1/*
2 * generic net pointers
3 */
4
5#ifndef __NET_GENERIC_H__
6#define __NET_GENERIC_H__
7
8#include <linux/bug.h>

--- 17 unchanged lines hidden (view full) ---

26
27struct net_generic {
28 unsigned int len;
29 struct rcu_head rcu;
30
31 void *ptr[0];
32};
33
1/*
2 * generic net pointers
3 */
4
5#ifndef __NET_GENERIC_H__
6#define __NET_GENERIC_H__
7
8#include <linux/bug.h>

--- 17 unchanged lines hidden (view full) ---

26
27struct net_generic {
28 unsigned int len;
29 struct rcu_head rcu;
30
31 void *ptr[0];
32};
33
34static inline void *net_generic(const struct net *net, int id)
34static inline void *net_generic(const struct net *net, unsigned int id)
35{
36 struct net_generic *ng;
37 void *ptr;
38
39 rcu_read_lock();
40 ng = rcu_dereference(net->gen);
41 ptr = ng->ptr[id - 1];
42 rcu_read_unlock();
43
44 return ptr;
45}
46#endif
35{
36 struct net_generic *ng;
37 void *ptr;
38
39 rcu_read_lock();
40 ng = rcu_dereference(net->gen);
41 ptr = ng->ptr[id - 1];
42 rcu_read_unlock();
43
44 return ptr;
45}
46#endif