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
@@ -30,16 +30,9 @@
|
||||
#include <linux/if_arp.h>
|
||||
|
||||
#define MIRRED_TAB_MASK 7
|
||||
static struct tcf_common *tcf_mirred_ht[MIRRED_TAB_MASK + 1];
|
||||
static u32 mirred_idx_gen;
|
||||
static DEFINE_RWLOCK(mirred_lock);
|
||||
static LIST_HEAD(mirred_list);
|
||||
|
||||
static struct tcf_hashinfo mirred_hash_info = {
|
||||
.htab = tcf_mirred_ht,
|
||||
.hmask = MIRRED_TAB_MASK,
|
||||
.lock = &mirred_lock,
|
||||
};
|
||||
static struct tcf_hashinfo mirred_hash_info;
|
||||
|
||||
static int tcf_mirred_release(struct tcf_mirred *m, int bind)
|
||||
{
|
||||
@@ -261,7 +254,6 @@ static struct notifier_block mirred_device_notifier = {
|
||||
.notifier_call = mirred_device_event,
|
||||
};
|
||||
|
||||
|
||||
static struct tc_action_ops act_mirred_ops = {
|
||||
.kind = "mirred",
|
||||
.hinfo = &mirred_hash_info,
|
||||
@@ -284,6 +276,11 @@ static int __init mirred_init_module(void)
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
err = tcf_hashinfo_init(&mirred_hash_info, MIRRED_TAB_MASK+1);
|
||||
if (err) {
|
||||
unregister_netdevice_notifier(&mirred_device_notifier);
|
||||
return err;
|
||||
}
|
||||
pr_info("Mirror/redirect action on\n");
|
||||
return tcf_register_action(&act_mirred_ops);
|
||||
}
|
||||
@@ -291,6 +288,7 @@ static int __init mirred_init_module(void)
|
||||
static void __exit mirred_cleanup_module(void)
|
||||
{
|
||||
unregister_netdevice_notifier(&mirred_device_notifier);
|
||||
tcf_hashinfo_destroy(&mirred_hash_info);
|
||||
tcf_unregister_action(&act_mirred_ops);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user