ebtables: remove nf_hook_register usage
Subsystems (3)
Florian Westphal
maintainerPATCH 1/1 ebtables: remove nf_hook_register usage
Similar to ip_register_table, pass nf_hook_ops to ebt_register_table(). This allows to handle hook registration also via pernet_ops and allows us to avoid use of legacy register_hook api.
Signed-off-by Florian Westphal <[email protected]>
--- include/linux/netfilter_bridge/ebtables.h | 6 ++- net/bridge/netfilter/ebtable_broute.c | 4 +- net/bridge/netfilter/ebtable_filter.c | 15 ++------ net/bridge/netfilter/ebtable_nat.c | 15 ++------ net/bridge/netfilter/ebtables.c | 61 +++++++++++++++++++------------ 5 files changed, 50 insertions(+), 51 deletions(-)
include/linux/netfilter_bridge/ebtables.h +4 -2
@@ -109,8 +109,10 @@ struct ebt_table {#define EBT_ALIGN (s) (((s) + (__alignof__(struct _xt_align)-1)) & \ ~(__alignof__(struct _xt_align)-1))extern struct ebt_table *ebt_register_table (struct net *net, -const struct ebt_table *table); -extern void ebt_unregister_table (struct net *net,struct ebt_table *table); +const struct ebt_table *table, +const struct nf_hook_ops *); +extern void ebt_unregister_table (struct net *net,struct ebt_table *table, +const struct nf_hook_ops *);extern unsigned int ebt_do_table (struct sk_buff *skb,const struct nf_hook_state *state,struct ebt_table *table);
net/bridge/netfilter/ebtable_broute.c +2 -2
@@ -65,13 +65,13 @@ static int ebt_broute(struct sk_buff *skb)static int __net_init broute_net_init (struct net *net) { - net->xt.broute_table =ebt_register_table (net, &broute_table); + net->xt.broute_table =ebt_register_table (net, &broute_table,NULL );return PTR_ERR_OR_ZERO (net->xt.broute_table); } static void __net_exit broute_net_exit(struct net *net) { -ebt_unregister_table (net, net->xt.broute_table); +ebt_unregister_table (net, net->xt.broute_table,NULL ); }static struct pernet_operations broute_net_ops = {
net/bridge/netfilter/ebtable_filter.c +3 -12
@@ -93,13 +93,13 @@ static struct nf_hook_ops ebt_ops_filter[] __read_mostly = {static int __net_init frame_filter_net_init (struct net *net) { - net->xt.frame_filter =ebt_register_table (net, &frame_filter); + net->xt.frame_filter =ebt_register_table (net, &frame_filter, ebt_ops_filter);return PTR_ERR_OR_ZERO (net->xt.frame_filter); } static void __net_exit frame_filter_net_exit(struct net *net) { -ebt_unregister_table (net, net->xt.frame_filter); +ebt_unregister_table (net, net->xt.frame_filter, ebt_ops_filter); }static struct pernet_operations frame_filter_net_ops = {
@@ -109,20 +109,11 @@ static struct pernet_operations frame_filter_net_ops = {static int __init ebtable_filter_init (void ) { -int ret; - - ret =register_pernet_subsys (&frame_filter_net_ops); -if (ret <0 ) -return ret; - ret =nf_register_hooks (ebt_ops_filter,ARRAY_SIZE (ebt_ops_filter)); -if (ret <0 ) -unregister_pernet_subsys (&frame_filter_net_ops); -return ret; +return register_pernet_subsys (&frame_filter_net_ops); } static void __exit ebtable_filter_fini(void) { -nf_unregister_hooks (ebt_ops_filter,ARRAY_SIZE (ebt_ops_filter));unregister_pernet_subsys (&frame_filter_net_ops); }
net/bridge/netfilter/ebtable_nat.c +3 -12
@@ -93,13 +93,13 @@ static struct nf_hook_ops ebt_ops_nat[] __read_mostly = {static int __net_init frame_nat_net_init (struct net *net) { - net->xt.frame_nat =ebt_register_table (net, &frame_nat); + net->xt.frame_nat =ebt_register_table (net, &frame_nat, ebt_ops_nat);return PTR_ERR_OR_ZERO (net->xt.frame_nat); } static void __net_exit frame_nat_net_exit(struct net *net) { -ebt_unregister_table (net, net->xt.frame_nat); +ebt_unregister_table (net, net->xt.frame_nat, ebt_ops_nat); }static struct pernet_operations frame_nat_net_ops = {
@@ -109,20 +109,11 @@ static struct pernet_operations frame_nat_net_ops = {static int __init ebtable_nat_init (void ) { -int ret; - - ret =register_pernet_subsys (&frame_nat_net_ops); -if (ret <0 ) -return ret; - ret =nf_register_hooks (ebt_ops_nat,ARRAY_SIZE (ebt_ops_nat)); -if (ret <0 ) -unregister_pernet_subsys (&frame_nat_net_ops); -return ret; +return register_pernet_subsys (&frame_nat_net_ops); } static void __exit ebtable_nat_fini(void) { -nf_unregister_hooks (ebt_ops_nat,ARRAY_SIZE (ebt_ops_nat));unregister_pernet_subsys (&frame_nat_net_ops); }
net/bridge/netfilter/ebtables.c +38 -23
81 lines not on this page · raw message
Signature · 1 line
2.10.2
Pablo Neira Ayuso
maintainerQuoted 3 lines · Florian Westphal
Similar to
ip_register_table, passnf_hook_opstoebt_register_table(). This allows to handle hook registration also viapernet_opsand allows us to avoid use of legacyregister_hookapi.
Also applied, thanks.