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>
This commit is contained in:

committed by
David S. Miller

parent
5da57f422d
commit
369ba56787
@@ -38,7 +38,7 @@ struct tcf_common {
|
||||
struct tcf_hashinfo {
|
||||
struct tcf_common **htab;
|
||||
unsigned int hmask;
|
||||
rwlock_t *lock;
|
||||
rwlock_t lock;
|
||||
};
|
||||
|
||||
static 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)
|
||||
return index & hmask;
|
||||
}
|
||||
|
||||
static inline int tcf_hashinfo_init(struct tcf_hashinfo *hf, unsigned int mask)
|
||||
{
|
||||
rwlock_init(&hf->lock);
|
||||
hf->hmask = mask;
|
||||
hf->htab = kzalloc((mask + 1) * sizeof(struct tcf_common *),
|
||||
GFP_KERNEL);
|
||||
if (!hf->htab)
|
||||
return -ENOMEM;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void tcf_hashinfo_destroy(struct tcf_hashinfo *hf)
|
||||
{
|
||||
kfree(hf->htab);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_NET_CLS_ACT
|
||||
|
||||
#define ACT_P_CREATED 1
|
||||
|
Reference in New Issue
Block a user