aboutsummaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorWANG Cong <xiyou.wangcong@gmail.com>2013-12-15 23:15:08 -0500
committerDavid S. Miller <davem@davemloft.net>2013-12-18 12:52:07 -0500
commit369ba56787d7469c0afda70bb9ff76ad5faaead5 (patch)
tree58425d3d564e3255c6660185bf22c80b76305ff5 /include/net
parent5da57f422d89c504a1d72dadd4e19d3dca8e974e (diff)
net_sched: init struct tcf_hashinfo at register time
It looks weird to store the lock out of the struct but still points to a static variable. Just move them into the struct. Cc: Jamal Hadi Salim <jhs@mojatatu.com> Cc: David S. Miller <davem@davemloft.net> Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com> Signed-off-by: Jamal Hadi Salim <jhs@mojatatu.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
-rw-r--r--include/net/act_api.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/include/net/act_api.h b/include/net/act_api.h
index a72642610790..2b5ec5abfeb3 100644
--- a/include/net/act_api.h
+++ b/include/net/act_api.h
@@ -38,7 +38,7 @@ struct tcf_common {
38struct tcf_hashinfo { 38struct tcf_hashinfo {
39 struct tcf_common **htab; 39 struct tcf_common **htab;
40 unsigned int hmask; 40 unsigned int hmask;
41 rwlock_t *lock; 41 rwlock_t lock;
42}; 42};
43 43
44static inline unsigned int tcf_hash(u32 index, unsigned int hmask) 44static inline unsigned int tcf_hash(u32 index, unsigned int hmask)
@@ -46,6 +46,22 @@ static inline unsigned int tcf_hash(u32 index, unsigned int hmask)
46 return index & hmask; 46 return index & hmask;
47} 47}
48 48
49static inline int tcf_hashinfo_init(struct tcf_hashinfo *hf, unsigned int mask)
50{
51 rwlock_init(&hf->lock);
52 hf->hmask = mask;
53 hf->htab = kzalloc((mask + 1) * sizeof(struct tcf_common *),
54 GFP_KERNEL);
55 if (!hf->htab)
56 return -ENOMEM;
57 return 0;
58}
59
60static inline void tcf_hashinfo_destroy(struct tcf_hashinfo *hf)
61{
62 kfree(hf->htab);
63}
64
49#ifdef CONFIG_NET_CLS_ACT 65#ifdef CONFIG_NET_CLS_ACT
50 66
51#define ACT_P_CREATED 1 67#define ACT_P_CREATED 1