X-Git-Url: http://git.onelab.eu/?p=linux-2.6.git;a=blobdiff_plain;f=net%2Fipv6%2Fnetfilter%2Fip6table_raw.c;fp=net%2Fipv6%2Fnetfilter%2Fip6table_raw.c;h=db28ba3855e2a46af5de28ec31de58f2a86e3512;hp=61a7c58e99f88c72fe3dda967388820460da47e1;hb=64ba3f394c830ec48a1c31b53dcae312c56f1604;hpb=be1e6109ac94a859551f8e1774eb9a8469fe055c diff --git a/net/ipv6/netfilter/ip6table_raw.c b/net/ipv6/netfilter/ip6table_raw.c index 61a7c58e9..db28ba385 100644 --- a/net/ipv6/netfilter/ip6table_raw.c +++ b/net/ipv6/netfilter/ip6table_raw.c @@ -142,7 +142,7 @@ static struct nf_hook_ops ip6t_ops[] = { }, }; -static int __init ip6table_raw_init(void) +static int __init init(void) { int ret; @@ -152,23 +152,34 @@ static int __init ip6table_raw_init(void) return ret; /* Register hooks */ - ret = nf_register_hooks(ip6t_ops, ARRAY_SIZE(ip6t_ops)); + ret = nf_register_hook(&ip6t_ops[0]); if (ret < 0) goto cleanup_table; + ret = nf_register_hook(&ip6t_ops[1]); + if (ret < 0) + goto cleanup_hook0; + return ret; + cleanup_hook0: + nf_unregister_hook(&ip6t_ops[0]); cleanup_table: ip6t_unregister_table(&packet_raw); + return ret; } -static void __exit ip6table_raw_fini(void) +static void __exit fini(void) { - nf_unregister_hooks(ip6t_ops, ARRAY_SIZE(ip6t_ops)); + unsigned int i; + + for (i = 0; i < sizeof(ip6t_ops)/sizeof(struct nf_hook_ops); i++) + nf_unregister_hook(&ip6t_ops[i]); + ip6t_unregister_table(&packet_raw); } -module_init(ip6table_raw_init); -module_exit(ip6table_raw_fini); +module_init(init); +module_exit(fini); MODULE_LICENSE("GPL");