aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/netfilter/arp_tables.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv4/netfilter/arp_tables.c')
-rw-r--r--net/ipv4/netfilter/arp_tables.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/net/ipv4/netfilter/arp_tables.c b/net/ipv4/netfilter/arp_tables.c
index 3608675ab08..a7591ce344d 100644
--- a/net/ipv4/netfilter/arp_tables.c
+++ b/net/ipv4/netfilter/arp_tables.c
@@ -1822,11 +1822,26 @@ static struct nf_sockopt_ops arpt_sockopts = {
1822 .owner = THIS_MODULE, 1822 .owner = THIS_MODULE,
1823}; 1823};
1824 1824
1825static int __net_init arp_tables_net_init(struct net *net)
1826{
1827 return xt_proto_init(net, NF_ARP);
1828}
1829
1830static void __net_exit arp_tables_net_exit(struct net *net)
1831{
1832 xt_proto_fini(net, NF_ARP);
1833}
1834
1835static struct pernet_operations arp_tables_net_ops = {
1836 .init = arp_tables_net_init,
1837 .exit = arp_tables_net_exit,
1838};
1839
1825static int __init arp_tables_init(void) 1840static int __init arp_tables_init(void)
1826{ 1841{
1827 int ret; 1842 int ret;
1828 1843
1829 ret = xt_proto_init(NF_ARP); 1844 ret = register_pernet_subsys(&arp_tables_net_ops);
1830 if (ret < 0) 1845 if (ret < 0)
1831 goto err1; 1846 goto err1;
1832 1847
@@ -1851,7 +1866,7 @@ err4:
1851err3: 1866err3:
1852 xt_unregister_target(&arpt_standard_target); 1867 xt_unregister_target(&arpt_standard_target);
1853err2: 1868err2:
1854 xt_proto_fini(NF_ARP); 1869 unregister_pernet_subsys(&arp_tables_net_ops);
1855err1: 1870err1:
1856 return ret; 1871 return ret;
1857} 1872}
@@ -1861,7 +1876,7 @@ static void __exit arp_tables_fini(void)
1861 nf_unregister_sockopt(&arpt_sockopts); 1876 nf_unregister_sockopt(&arpt_sockopts);
1862 xt_unregister_target(&arpt_error_target); 1877 xt_unregister_target(&arpt_error_target);
1863 xt_unregister_target(&arpt_standard_target); 1878 xt_unregister_target(&arpt_standard_target);
1864 xt_proto_fini(NF_ARP); 1879 unregister_pernet_subsys(&arp_tables_net_ops);
1865} 1880}
1866 1881
1867EXPORT_SYMBOL(arpt_register_table); 1882EXPORT_SYMBOL(arpt_register_table);