diff options
author | WANG Cong <xiyou.wangcong@gmail.com> | 2013-12-20 00:08:51 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-12-20 17:06:27 -0500 |
commit | 568a153a22d8f338a5ebda70e6bd139f6d8bb2c3 (patch) | |
tree | 944006c1defc9335807ae15c30c466b5fb3f681f /net/sched/act_mirred.c | |
parent | 852ad5e631967ae2203cb08c5b6b42c26011ed63 (diff) | |
download | linux-568a153a22d8f338a5ebda70e6bd139f6d8bb2c3.tar.gz linux-568a153a22d8f338a5ebda70e6bd139f6d8bb2c3.tar.bz2 linux-568a153a22d8f338a5ebda70e6bd139f6d8bb2c3.zip |
net_sched: fix a regression in tc actions
This patch fixes:
1) pass mask rather than size to tcf_hashinfo_init()
2) the cleanup should be in reversed order in mirred_cleanup_module()
Reported-by: Eric Dumazet <eric.dumazet@gmail.com>
Fixes: 369ba56787d7469c0afd ("net_sched: init struct tcf_hashinfo at register time")
Cc: Eric Dumazet <eric.dumazet@gmail.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 'net/sched/act_mirred.c')
-rw-r--r-- | net/sched/act_mirred.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/sched/act_mirred.c b/net/sched/act_mirred.c index 199fc9838af3..9dbb8cd64cb0 100644 --- a/net/sched/act_mirred.c +++ b/net/sched/act_mirred.c @@ -276,7 +276,7 @@ static int __init mirred_init_module(void) if (err) return err; - err = tcf_hashinfo_init(&mirred_hash_info, MIRRED_TAB_MASK+1); + err = tcf_hashinfo_init(&mirred_hash_info, MIRRED_TAB_MASK); if (err) { unregister_netdevice_notifier(&mirred_device_notifier); return err; @@ -287,9 +287,9 @@ 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); + tcf_hashinfo_destroy(&mirred_hash_info); + unregister_netdevice_notifier(&mirred_device_notifier); } module_init(mirred_init_module); |